selenium 是基于WEB的自动化测试工具。

由以下几个工具组组成

1.selenium IDE: 一个火狐插件

点击这个插件就进入录制界面,能够记录用户的操作,并且将其导出为可重复使用的测试脚本,并且支持多种语言

优点:

无需编程技能即可快速上手

缺点:

1.分散的脚本不可重用且难以维护,一旦UI发生变化测试就很受影响。

2.系统在测试之前必须可用。不适用于ATDD

3.仅支持firefox,不支持其他浏览器,无法做浏览器兼容性测试

2.selenium RC (selenium 1):

运行原理:在浏览器中注入javaScript(selenium core)来执行测试

优点:

支持的浏览器多,几乎支持所有的浏览器

缺点 :

1.需要开始selenium server服务。

1.为了防止恶意的javaScript,所有浏览器都加强了对javaScript的安全策略,所以有些场景selenium 1没法支持。

(浏览器由于安全问题不允许不同域之间的JS调用,而selenium1中的工作方式就是在宿主页面注入JS并且通过调用JS来执行测试操作的)

2.编程方式更偏向于面向过程,可能会导致项目中一大堆重复的方法

举例:

1.先开启server服务:

java -jar  C:\Users\qiuwy\.m2\repository\org\seleniumhq\selenium\selenium-server\2.44.0\selenium-server-standalone-2.40.0.jar

2.支持测试

测试代码:

import org.junit.Test;

import com.thoughtworks.selenium.DefaultSelenium;

public class OpenBaiduBySelenium1 {

@Test

public void openbaiduSelenium1(){

//实例化selenium1对象;

//第一个参数是selenium服务器的主机名称或ip地址;第二个参数是服务器端口,默认是4444;

//第三个参数是加载对应的浏览器;第四个参数是起始url,浏览器会指向该url上的selenium资源(这个我也不是很明白)

DefaultSelenium selenium=new DefaultSelenium("localhost",4444,"*firefox","http://www.baidu.com");

//启动浏览器

selenium.start();

//在浏览器打开http://www.baidu.com

selenium.open("http://www.baidu.com");

//在百度搜索框输入“selenium”

selenium.type("id=kw", "selenium");

//点击“百度一下”按钮

selenium.click("id=su");

System.out.println(selenium.getTitle());

}

}

3.selenium 2(webdriver)

运行原理:通过原生浏览器支持或者是浏览器扩展直接控制浏览器

(原生浏览器是指火狐、IE、谷歌(Chrome)、Safari、Opera等这一类拥有完整独立内核的浏览器)

优点:

1.提供了一套友好的API,使得自动化测试代码的可读性和可维护性大大提高

2.相对selenium1来说,selenium2的运行速度快些。

3.可以驱动本地浏览器,从而确保测试的行为能够尽可能地接近于用户行为

4.能够绕过js限制

5.支持Android(AndroidDriver)和iPhone(iPhoneDriver)的移动应用测试。

6.还可以做无界面的前端自动化测试,HtmlDriver

缺点:

支持的浏览器少,firefox(FriefoxDriver),ie(InternetExploerDriver),opera(OperaDriver),chrome(ChromeDriver)

举例:

@Test

public void openBaiduByFirefoxDriver(){

WebDriver driver =new FirefoxDriver();

driver.get("http://www.baidu.com");

driver.findElement(By.id("kw")).sendKeys("HtmlUnit");;//在搜索输入框里输入"HtmlUnit"

driver.findElement(By.id("su")).click();//点击“百度一下”按钮

System.out.println("页面标题:"+driver.getTitle());

System.out.println("页面URL:"+driver.getCurrentUrl());//返回当前页面的URL

driver.close();

}

4.Selenium Grid

能够让测试用例在不同环境不同时间并行测试,从而提高测试效率。支持selenium 1和selenium2

后续再研究

简要总结selenium四个工具组的更多相关文章

  1. 【Selenium】软件测试基础(软件测试分类和工具组)firebug、firepath的安装

    白盒测试:需要了解内部结构和代码 黑盒测试:不关心内部结构和代码 灰盒测试:介于白盒黑盒之间 静态测试:测试时不执行被测试软件 动态测试:测试时执行被测试软件 单元测试:测试软件的单元模块 集成测试: ...

  2. 软件测试基础(软件测试分类和工具组)firebug、firepath的安装

    白盒测试:需要了解内部结构和代码 黑盒测试:不关心内部结构和代码 灰盒测试:介于白盒黑盒之间 静态测试:测试时不执行被测试软件 动态测试:测试时执行被测试软件 单元测试:测试软件的单元模块 集成测试: ...

  3. selenium 开启开发者工具(F12)

    selenium 开启开发者工具(F12) options = webdriver.ChromeOptions(); options.add_argument("--auto-open-de ...

  4. Selenium浏览器自动化测试工具

    目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...

  5. Azylee.Utils 工具组

    https://github.com/yuzhengyang/Fork Fork 是平时做 C# 软件的时候,整合各种轮子的一个工具项目,包括并不仅限于:各种常用数据处理方法,文件读写 加密 搜索,系 ...

  6. java selenium (四) 使用浏览器调试工具

    在基于UI元素的自动化测试中, 无论是桌面的UI自动化测试,还是Web的UI自动化测试.   首先我们需要查找和识别UI元素. 在基于Web UI 自动化测试中, 测试人员需要了解HTML, CSS和 ...

  7. Selenium功能自动化测试工具

    Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Mozilla Suite ...

  8. Java从零开始学二十四(集合工具类Collections)

    一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...

  9. selenium和AutoIt工具辅助下载和上传

    上传 根据AutoIt Windows Info 所识别到的控件信息打开SciTE Script Editor编辑器,编写脚本. ;ControlFocus("title",&qu ...

随机推荐

  1. HanLP分词研究

    这篇文章主要是记录HanLP标准分词算法整个实现流程. HanLP的核心词典训练自人民日报2014语料,语料不是完美的,总会存在一些错误.这些错误可能会导致分词出现奇怪的结果,这时请打开调试模式排查问 ...

  2. golang socket与Linux socket比较分析

    在posix标准推出后,socket在各大主流OS平台上都得到了很好的支持.而Golang是自带runtime的跨平台编程语言,Go中提供给开发者的socket API是建立在操作系统原生socket ...

  3. Flutter 宽高比(比率)控件 AspectRatio

    const AspectRatio({ Key key, @required this.aspectRatio, Widget child,}) void main() {  runApp(    n ...

  4. python面试题_01

    前言 现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出2个笔试题,这些题目一般不难,主要考察基本功.要是给你一台电脑,在编辑器里面边写边调试,没多大 ...

  5. 关于VS2019使用Git时遇到的Bug

    最近在运行vs2017时老是卡死,神烦!迫于无奈我从微软官网下载了vs2019,安装后打开项目,发现从git上拉取代码时报错如下: Please make sure you have the corr ...

  6. Shadowmap简易实现

    之前一直没有自己实现过阴影,只是概念上有所了解,这次通过Demo进行实际编写操作. 总的来说没有什么可以优化的,倒是对于窗户这种可用面片代替的物体似乎能优化到贴图上,之前arm有个象棋屋的demo做过 ...

  7. Python基础之datetime、sys模块

    1.datetime模块 1)datetime.datetime.now(),返回各当前时间.日期类型. datetime.datetime.now(),返回当前日期. import datetime ...

  8. 腾讯java面试经验 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.腾讯等公司offer,岗位是Java后端开发,因为发展原因最终选择去了腾讯,入职一年时间了,也成为了面试官,之 ...

  9. 全网最全Selenium相关资源汇总

    官网: Selenium官网:https://docs.seleniumhq.org Selenium github: https://github.com/SeleniumHQ/selenium 文 ...

  10. PHP二维数组用某个字段的值当做键名

    $array = array( array(','name'=>'tom'), array(','name'=>'jerry'), array(','name'=>'spike') ...