为什么选用Selenium Grid?
之前的博客中介绍过了Selenium Webdriver,但它只能支持在一台机器上执行测试用例。这样在实际工作中可能会遇到以下问题:
- 怎么实现在不同的操作系统上执行你的测试脚本?
- 如何在同一浏览器的多个不同版本中运行测试用例?
- 如何在多个不同浏览器中运行测试用例?
- 如何并行运行测试用例?
所有这些问题的答案就是:使用Selenium Grid。
Selenium Grid的优点
- Selenium Gird可以灵活的分发测试脚本到不同的机器上运行
- 可以执行多浏览器测试
- 可以在不同操作系统上运行你的测试脚本,即使该系统不支持你的编程语言
Selenium Gird基本模块:
Hub:Hub是Selenium Grid体系结构的中心,它负责接收所有请求。Selenium Grid中只能有一个Hub。Hub将测试用例分发到每个节点上。
Node:Grid中可以有多个Node节点。测试将在节点中运行。每个节点与Hub通信并执行分配给它的测试脚本。
Selenium GRID使用
从Selenium的官方网站下载Selenium服务器jar文件。打开命令提示符并导航到该文件所在的文件夹。使用以下命令运行服务器
Copy to Clipboard
默认情况下,Hub将使用端口4444。可以通过在命令提示符中传递不同的端口号来更改此端口。启动成功后可以访问界面检查状态:http://localhost:4444/grid/console
接下来来到作为执行机的节点机器。输入下面的命令启动Node节点
Copy to Clipboard
在不同的执行机上重复创建节点的命令,你将会得到主从服务器集群
MaxInstance用于限制节点中浏览器初始化的次数。例如,如果想使用2个Firefox和2个IE,那么可以使用maxInstance启动节点。
Copy to Clipboard
MaxSession用于配置在系统中可以并行使用多少个浏览器。
Copy to Clipboard
Grid Code样例代码
下面是使用TestNG的示例代码。使用Grid节点机器,操作浏览器登录Gmail并输入用户名和密码。
Copy to Clipboard
结论
当你需要进行多浏览器功能、兼容性测试时,配合使用Selenium Grid将会事半功倍。
如果有任何对于Selenium Grid的疑问请与我们联系。