为什么选用Selenium Grid?

之前的博客中介绍过了Selenium Webdriver,但它只能支持在一台机器上执行测试用例。这样在实际工作中可能会遇到以下问题:

  1. 怎么实现在不同的操作系统上执行你的测试脚本?
  2. 如何在同一浏览器的多个不同版本中运行测试用例?
  3. 如何在多个不同浏览器中运行测试用例?
  4. 如何并行运行测试用例?

所有这些问题的答案就是:使用Selenium Grid。

Selenium Grid的优点

  1. Selenium Gird可以灵活的分发测试脚本到不同的机器上运行
  2. 可以执行多浏览器测试
  3. 可以在不同操作系统上运行你的测试脚本,即使该系统不支持你的编程语言

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的疑问请与我们联系。