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. Java自学-类和对象 类属性

    Java的类属性和对象属性 当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性 当一个属性被声明成类属性,那么所有的对象,都共享一个值 与对象属性对比: 不同对象的 对象属性 的值都可能 ...

  2. golang学习笔记 ---interface

    1. 什么是interface接口 interface 是GO语言的基础特性之一.可以理解为一种类型的规范或者约定.它跟java,C# 不太一样,不需要显示说明实现了某个接口,它没有继承或子类或“im ...

  3. 【leetcode-49】字母异位词分组

    给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan&quo ...

  4. Phoenix连接安全模式下的HBase集群

    Phoenix连接安全模式下的HBase集群 HBase集群开启安全模式(即启用kerberos认证)之后,用户无论是用HBase shell还是Phoenix去连接HBase都先需要通过kerber ...

  5. js图片压缩+ajax上传

    图片压缩用到了localresizeimg 地址: https://github.com/think2011/localResizeIMG 用起来比较简单 <input type="f ...

  6. IDEA忽略编译报错

    设置Intellij IDEA忽略部分类编译错误 File——Settings——Compiler——Java compiler修改:Use complier:将Javac改为Eclipse在Ecli ...

  7. 利用Beef劫持客户端浏览器

    利用Beef劫持客户端浏览器   环境: 1.Kali(使用beef生成恶意代码,IP:192.168.114.140) 2.一台web服务器(留言板存在XSS跨站脚本漏洞,IP:192.168.11 ...

  8. MySQL 如何优化大分页查询?

    一 背景 大部分开发和DBA同行都对分页查询非常非常了解,看帖子翻页需要分页查询,搜索商品也需要分页查询.那么问题来了,遇到上千万或者上亿的数据量怎么快速的拉取全量,比如大商家拉取每月千万级别的订单数 ...

  9. Prometheus学习笔记(6)Alertmanager告警

    目录 一.Alertmanager简介 二.Alertmanager部署 三.Alertmanager配置 四.自定义告警规则和发送 五.自定义告警模板 一.Alertmanager简介 Promet ...

  10. Jmeter 使用集合点

    概念解释 集合点,这个概念是loadrunner中的. 这个东西可以这样理解,比如我们在跑100起跑的时候,需要在发令枪响之后,10人同时起步,等10人同时达到终点, 再次开发令枪,重复上面的动作. ...