如图所示, Selenium工具集的呈现。
1. Selenium IDE
Selenium IDE (集成开发环境) 是一个创建测试脚本的工具,如图所示。它是一个FireFox 插件,实现浏览器的录制与回放功能,提供创建自动化测试的建议接口。Selenium IDE 有一个记录功能,能记录人工的操作,并且能选择多种语言把它们导出到一个可重用的脚本中用于后续执行。如果没有编程经验,可以通过Selenium IDE来熟悉Selenium的命令。实际自动化测试脚本开发过程中Selenium IDE使用并不多。
2. Selenium RC
Selenium RC 是Selenium 家族的核心工具,Selenium RC 支持多种不同的语言(Python 、Java、Ruby、PHP)编写自动化测试脚本,通过Selenium RC 服务器作为代理服务器去访问被测应用从而达到测试的目的。
Selenium RC 分为Client Libraries 和Selenium Server。
- Client Libraries 库主要用于编写测试脚本,用来控制Selenium Server 的库;
- 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的版本特性有:
- 去掉了对Selenium RC的支持;
- 全面拥抱Java 8;
- 支持macOS (Sierra or later),支持官方的safaridriver;
- 通过ms官方的WebDriverserver支持Edge浏览器;
- 只支持ie 9.0版本以上;
- 通过Mozilla官方的geckodriver来支持FireFox;
- Selenium IDE支持Chrome插件;
- 支持微软的Edge浏览器。
原文链接:
https://www.cnblogs.com/starpoint/p/14459784.html