Selenium工具集html
如图所示, Selenium工具集的呈现。编程
1. Selenium IDE浏览器
Selenium IDE (集成开发环境) 是一个建立测试脚本的工具,如图所示。它是一个FireFox 插件,实现浏览器的录制与回放功能,提供建立自动化测试的建议接口。Selenium IDE 有一个记录功能,能记录人工的操做,而且能选择多种语言把它们导出到一个可重用的脚本中用于后续执行。若是没有编程经验,能够经过Selenium IDE来熟悉Selenium的命令。实际自动化测试脚本开发过程当中Selenium IDE使用并很少。服务器
2. Selenium RCide
Selenium RC 是Selenium 家族的核心工具,Selenium RC 支持多种不一样的语言(Python 、Java、Ruby、PHP)编写自动化测试脚本,经过Selenium RC 服务器做为代理服务器去访问被测应用从而达到测试的目的。函数
Selenium RC 分为Client Libraries 和Selenium Server。工具
v Client Libraries 库主要用于编写测试脚本,用来控制Selenium Server 的库;性能
v Selenium Server 负责控制浏览器行为, Selenium Server 主要包括3 部分:Launcher、Http Proxy、Core。其中,Selenium Core是被Selenium Server嵌入到浏览器页面中。SeleniumCore就是众多JavaScript函数的集合,即经过这些JavaScript函数,咱们才能够实现用程序对浏览器进行操做。Launcher用于启动浏览器,把Selenium Core加载到浏览器页面当中,并把浏览器的代理设置为SeleniumServer的HttpProxy。测试
Selenium引入了Remote Control Server 来代理 Server,JavaScript 脚本注入和与 Server 通信都经过这个代理Server 来进行。引入这Remote Control Server 是由于“同源策略”的限制,经过代理服务器来“欺骗”远程Server,达到使其觉得是从同一个地方 load 代码以正确返回请求数据的效果。如图所示,Selenium RC的流程为:编码
(1) 测试用例经过Http请求创建与 Selenium-RC server 的链接;
(2) Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy;
(3) 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,而后经过Http Proxy发送JS命令通知Selenium Core执行操做浏览器的动做并注入 JS 代码;
(4) Selenium Core执行接受到的指令并操做;
(5) 当浏览器收到新的请求时,发送http请求;
(6) Selenium Server接收到浏览器发送的Http请求后,本身重组Http请求,获取对应的Web页面;
(7) Selenium Server中的Http Proxy把接受到的页面返回给浏览器。
3. Selenium Grid
Selenium Grid 使得Selenium RC 解决方案能提高针对大型的测试套件或者哪些须要运行在多环境的测试套件的处理能力。Selenium Grid 能够并行测试用例,也就是说,不一样的测试用例能够同时跑在不一样的远程机器上。这样作有两个优点,首先,若是有一个大型的测试套件,或者一个跑的很慢的测试套件,可使用Selenium Grid 将该测试套件划分红几份,同时在几个不一样的机器上运行,这样可以显著的提高性能。同时,若是必须在多环境中运行测试套件,能够得到多个远程机器的支持,它们将同时运行测试套件。在不一样的状况下,Selenium Grid 都能经过并行处理显著的缩短测试套件的处理时间。
4. Selenium WebDriver
当人们谈论Selenium时,通常所指的就是Selenium WebDriver。WebDriver 是Selenium 2 主推的工具,事实上WebDriver是Selenium RC的替代品,由于Selenium须要保留向下兼容性的缘由,在Selenium 2 中, Selenium RC没有被完全的抛弃,若是使用Selenium开发一个新的自动化测试项目,那么咱们强烈推荐使用Selenium2 的WebDriver进行编码。而在Selenium 3 中,Selenium RC 被移除了。
1.1.2 Selenium3.0的新特性
2016年7月,Selenium3.0发布第一个beta版,当前的版本是3.141,Selenium3的版本特性有:
v 去掉了对Selenium RC的支持;
v 全面拥抱Java 8;
v 支持macOS (Sierra or later),支持官方的safaridriver;
v 经过ms官方的WebDriverserver支持Edge浏览器;
v 只支持ie 9.0版本以上;
v 经过Mozilla官方的geckodriver来支持FireFox;
v Selenium IDE支持Chrome插件;
v 支持微软的Edge浏览器。