声明:本文章部分内容翻译自官网,更多参数配置可以参阅官网
1.什么是selenium grid
Selenium-Grid允许您在不同的机器上针对不同浏览器并行运行测试。也就是说,同时针对运行不同浏览器和操作系统的不同机器同时运行多个测试。基本上,Selenium-Grid支持分布式测试执行。它允许在分布式测试执行环境中运行测试。
2.什么时候使用selenium grid
一般来说,您可能需要使用Selenium-Grid的原因有两个。
要针对多个浏览器运行测试,可以在不同操作系统上运行多个版本的浏览器和浏览器。
减少测试套件完成测试通行所需的时间。
Selenium-Grid用于通过使用多台机器并行运行测试来加快执行测试次数。例如,如果您有一套100个测试,但是您设置了Selenium-Grid来支持4台不同的机器(VM或单独的物理机器)来运行这些测试,则测试套件将在(大约)四分之一的时间内完成因为如果您在单个机器上顺序运行测试。对于大型测试套件,以及长时间运行的测试套件,如执行大量数据验证的测试套件,这可能是一个重要的节省时间。一些测试套件可能需要几个小时才能运行。增加运行套件的时间的另一个原因是缩短开发人员检查AUT代码后的测试结果的周转时间。
Selenium-Grid也用于支持针对多个运行时环境的运行测试,特别是针对不同浏览器的同时运行。例如,可以设置虚拟机的“Grid”,每个虚拟机都支持要测试的应用程序必须支持的不同浏览器。所以,机器1有Internet Explorer 8,机器2,Internet Explorer 9,机器3最新的Chrome,机器4最新的Firefox。当测试套件运行时,Selenium-Grid接收每个测试浏览器组合,并分配每个测试以对其所需的浏览器运行。
另外,可以有一个所有相同浏览器,类型和版本的Grid。例如,可以有一个4个机器的,每个机器运行3个Firefox 12实例,允许可用的Firefox实例的“服务器场”(在某种意义上)。当套件运行时,每个测试都传递给Selenium-Grid,该测试将测试分配给下一个可用的Firefox实例。以这种方式,可以得到测试通行证,同时可以同时运行12个测试,大大减少了完成测试通过所需的时间。
selenium-Grid非常灵活。这两个示例可以组合以允许每个浏览器类型和版本的多个实例。这样的配置将同时提供快速测试通过完成的并行执行,并同时支持多种浏览器类型和版本。
3.Selenium Grid 版本介绍
Selenium-Grid 2.0是本文档的最新版本(5/26/2012)。它与硒网格版本1截然不同。在2.0 Selenium-Grid与Selenium-RC服务器合并。现在,您只需要下载一个.jar文件即可将远程Selenium-RC-Server和Selenium-Grid全部集成在一个包中。
4.selenium-Grid如何工作 - 使用集线器和节点
Grid由单个集线器和一个或多个节点组成。两者都是使用selenium-server.jar可执行文件启动的。我们在本章的以下部分列出了一些例子。
集线器将接收要执行的测试以及应该运行测试的哪个浏览器和“平台”(即WINDOWS,LINUX等)的信息。它知道已经“注册”到集线器的每个节点的配置。使用该信息,它选择具有请求的浏览器 - 平台组合的可用节点。一旦选择了一个节点,测试发起的Selenium命令就被发送到集线器,它将它们传递到分配给该测试的节点。该节点运行浏览器,并在该浏览器内针对被测试应用程序执行Selenium命令。
5.selenium-Grid安装
安装很简单 从SeleniumHq网站的下载页面下载Selenium-Server jar文件,将其安装在您选择的文件夹中。您需要确保java可执行文件位于执行路径上,以便您可以从命令行运行它。
6.selenium-Grid启动
一般来说,首先启动一个集线器,因为节点依赖于集线器。因为节点可以识别集线器何时启动,反之亦然。为了学习的目的,首先启动hub将更容易,否则您会看到可能不想首次使用Selenium-Grid开始的错误消息。
(1)启动hub命令:java -jar selenium-server-standalone-3.4.0.jar -role hub
这将启动使用默认参数值的集线器。默认端口是4444,也可以指定端口,在命令后边跟 “-port 4445”, 请注意,您可能需要更改jar文件名中的版本号,具体取决于您正在使用的硒版服务器版 本。访问http://localhost:4444/grid/console#如下图,启动成功。
(2)启动node命令:java -jar -Dwebdriver.chrome.driver=D:\chromedriver.exe selenium-server-standalone-3.4..jar -role node -hub "http://(hub机的ip地址)/grid/register" -port 6655
可根据自己的版本做相应的修改,chrome.driver的位置路径填写自己的存放路径,端口号可以修改。如下图,启动成功。
注意:如果是2.53.0的版本或者更低的版本 -Dwebdriver.chrome.driver=D:\chromedriver.exe 参数要放到命令最后的位置
7.代码demo演示