Selenium 简介
Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。
1、支持平台
WebDriver支持Android和BlackBerry两个移动平台的浏览器测试。Android目前为市场占有率第一的移动平台,对于在其上面进行自动化测试,推荐Appium,Appium扩展了WebDriver的协议,支持ios平台和Android平台上的原生应用、Web应用和混合应用等。
2、支持浏览器
WebDriver 目前所支持的浏览器包括:Firefox、Chrome、IE、Edge、Opera、Safari. 为什么会选择上面几款浏览器进行支持呢?主要与浏览器的内核有关。
3、支持模式
HtmlUnit和PhantomJS是两个比较特殊的模式,我们可以把它们看作是伪浏览器,在这种模式下支持html、Java Saript等的解析,但不会真正地渲染出页面。由于不进行CSS及GUI渲染,所以运行效率上要比真实的浏览器快很多,主要用在功能性测试上面。
一、Selenium的前世今生:
04年,Selenium诞生,并正式命名为Selenium Core。
Selenium Core是基于浏览器并且采用JavaScript编程语言的测试工具,运行在浏览器的安全沙箱中,设计理念是将待测试产品、Selenium Core和测试脚本均部署到同一台服务器上
来完成自动化测试的工作。
05年,Selenium RC诞生,即Selenium 1。这个时候,Selenium Core其实是Selenium RC的核心。
Selenium RC让待测试产品、Selenium Core和测试脚本三者分散在不同的服务器上。(测试脚本只关心将HTTP请求发送到指定的URL上,selenium本身不需要关心HTTP请求由于什么程序编程语言编写而成)
Selenium RC包括两部分:一个是Selenium RC Server,一个是提供各种编程语言的客户端驱动来编写测试脚本。
Selenium RC的API组织采用字典形式。
07年,WebDriver诞生。WebDriver的设计理念是将端到端测试与底层具体的测试工具分隔离,并采用设计模式Adapter适配器来达到目标。
WebDriver的API组织更多的是面向对象。
09年,Selenium RC和WebDriver合并,即Selenium 2,简称Selenium WebDriver。主要特性是将WebDriver API集成进Selenium RC。
合并后,支持多语言绑定; 支持谷歌、火狐、IE,还支持嵌入式设备上基于webKit内核的浏览器,如android、iOS的浏览器。
09年后,Selenium 3诞生。
Selenium 3会移除原有的Selenium Core的实现部分,并且Selenium RC的API也将被去掉。其它一些变化包括但不限于以下内容:
二、Selenium目前主要包括以下几个套件:
工具 描述
Selenium IDE IDE是一个Firefox插件,可以录制用户的基本操作,生成测试用例。随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化脚本。
Selenium RC RC为核心部分。它使用的编程语言,如Java,C#,PHP,Python、Ruby和Perl强大功能来创建更复杂的测试。Selenium RC 分 为 C l i e n t Libraries(编写测试脚本) 和 Selenium Server(控制浏览器行为)。
Selenium WebDriver WebDriver前身是Selenium RC,可以看作是Selenium RC的替代品,直接发送命令给浏览器,并检索结果。2
Selenium Grid 网格用于运行在不同的机器,不同的浏览器并行测试的工具,目的在于加快测试用例运行的速度,从而减少测试运行的总时间。利用Grid可以很方便地实现在多台机器上和异构环境中运行测试用例。
三、Selenium IDE的优点如下:
四、selenium与嵌入式:
五、WebDriver与Selenium RC的区别:
六、使用:
七、SeIenium的特点如下:
- 开源,免费;
- 多浏览器支持:Firefox、Chrome、IE、Opera、Edge;
- 多平台支持:Linux、Windows、MAC;
- 多语言支持:Java、Python、Ruby、C#、JavaScript、C++;
- 对…出页面有良好的支持;
- 简单(API简单)、灵活(用开发语言驱动> ;
- 支持分布式测试用例执行*