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. c++ 二维数组定义 二维数组首地址查询

    #include <iostream> using namespace std; int main() { ][] = { {,,}, {,,} }; cout << &quo ...

  2. 分享一个Linux C++消息通信框架TCPSHM

    由于本人从事行业关系,Linux环境下的低延迟通信是我关注的技术之一.要达到极端的低延迟,当然同机器内IPC比网络通信快,而Linux IPC方式中无疑是共享内存延迟最低.不过相对于TCP这种通用的通 ...

  3. 一个萝卜一个坑#我的C坑_两局变量

    前面的笔记慢慢补 全局变量和局部变量的区别: 1.首字母 尽量不用全局变量原因: 1.占内存 2.降低通用性和可靠性 3.降清晰度 若在同一源文件中,全局变量和局部变量同名,记住很重要的一条:实参决定 ...

  4. docker镜像上传阿里云仓库

    推送至阿里云镜像:1.首先在阿里云上选择容器镜像服务,创建命名空间以及镜像仓库2. docker login --username=zhangshitongsky@163.com registry.c ...

  5. Web负载均衡学习笔记之K8S内Ngnix微服务服务超时问题

    0x00 概述 本文是从K8S内微服务的角度讨论Nginx超时的问题 0x01 问题 在K8S内部署微服务后,发现部分微服务链接超时,Connection Time Out. 最近碰到了一个 Ngin ...

  6. SQL Server中用户账号在数据库中的安全性,可以控制用户的权限

    今天在公司SQL Server数据库中,查到一个SQL Server用户账号"DemoUser": "DemoUser"不在数据库服务器的sysadmin角色中 ...

  7. IdentityServer4学习及简单使用

    本文,主要用来记录IdentityServer4的简单使用. 一. IdentityServer的预备知识 要学习IdentityServer,需要了解下基于Token的验证体系,其中涉及到Token ...

  8. Nginx优化配置,轻松应对高并发

    Nginx现在已经是最火的web服务器之一,尤其在静态分离和负载均衡方面,性能十分优越.接下来我们主要看下Nginx在高并发环境下的优化配置,主要是针对 nginx.conf 文件的属性设置.我们打开 ...

  9. Python3字典与集合

    一.Python3字典 字典是另一种可变容器模型,且可存储任意类型对象字典的每个键值(key=>value)对用冒号":"分割,每个键值对之间用逗号"," ...

  10. requestAnimationFrame ---- 请求动画帧。

    window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画.该方法需要传入一个回调函数作为参数,该回调函数会 ...