在selenium家族中,有webdriver和seleniumIDE以及最后这个seleniumGrid 这个就是实现分布式测试,可以搭建不同的测试环境(操作系统和浏览器),从而使一份测试用例得到不同的测试环境的运行结果。
什么是Selenium Grid
Selenium Grid是Selenium套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上。
Selenium Grid有两个版本——老版本Grid 1和新版本Grid 2。我们只对新版本做介绍,因为Selenium团队已经逐渐遗弃老版本了。
Selenium Grid 主要使用 master-slaves (or hub-nodes) 理念 --一个 master/hub 和多个 基于master/hub注册的子节点 slaves/nodes。当我们在master上基于不同的浏览器/系统运行测试用例时,master将会分发给适当的node运行。
下载:
Java环境安装去以前博客去找,超级详细
2.Grid环境安装
不需要安装的,直接去存放的路径去执行
到selenium server所在的路径,运行:java -jar selenium-server-standalone-3.141.59.jar -role hub -port 5566,成功启动你会看到:
节点注册和客户端连接用下面两个命令:
然后就访问一下
localhost:5566
启动hub后,就需要运行节点啦,最少都要有一个node节点,不然hub就成空头司令了;而node节点可以与hub在同一台机器上运行
分命令行启动和json配置文件启动
创建一个grid文件
command_line.md中写的是命令启动hub和node节点
java -jar selenium-server-standalone-3.141.59.jar -role hub -hubConfig hub_config.json
java -jar selenium-server-standalone-3.141.59.jar -role node -nodeConfig node_config.json
hub_config.json:配置信息
{
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"registry": "org.openqa.grid.internal.DefaultGridRegistry",
"throwOnCapabilityNotPresent": true,
"cleanUpCycle": 5000,
"role": "hub",
"debug": false,
"browserTimeout": 0,
"timeout": 1800
}
node_config.json:node节点配置信息
{
"capabilities":
[
{
"browserName": "firefox",
"marionette": true,
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "internet explorer",
"platform": "WINDOWS",
"maxInstances": 1,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "safari",
"technologyPreview": false,
"platform": "MAC",
"maxInstances": 1,
"seleniumProtocol": "WebDriver"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": -1,
"register": true,
"registerCycle": 5000,
"hub": "http://localhost:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets" : [],
"withoutServlets": [],
"custom": {}
}
把node_config.json和hub_config.json和selenium-server-standalone-3.141.59.jar复制存到到同一个目录下
cmd切换到这个路径下重新运行:
java -jar selenium-server-standalone-3.141.59.jar -role hub -hubConfig hub_config.json
然后再启动·一个node节点
再打开一个cmd
这就是配置链接好了 记得web驱动要配置环境变量要不然找不到
C:\Program Files\seleniumdriver\chromedriver
虽然在命令行可以配置 但是参数太多了 还是推荐这种配置文件来配置。