想分布式运行case? 试试下面的操作吧!
node机器中运行的代码
java -jar selenium-server-standalone-2.44.0.jar -role node -hub http://{hub服务器地址}:4444/grid/register -port 5500 -maxSession 60 -browser "browserName=chrome,version=node_3,maxInstances=20,platform=WINDOWS" -Dwebdriver.chrome.driver="C:\\chromedriver.exe"
需要jar包
selenium-server-standalone-2.44.0.jar
, 在windows中一般将如上代码写在一个.bat
文件中,每一个node机器中写一个.bat
文件,运行的时候直接启动.bat
文件
hub机器中运行的代码
java -jar selenium-server-standalone-2.44.0.jar -role hub
属性 | 解释 |
---|---|
-role |
node 代表的是节点 hub 代表的是server |
-hub |
服务器hub 地址 http://loaclhost:4444
|
-port |
当前机器启用的端口号, 默认值4444
|
-timeout |
默认值300 ,设置为0 表示没有超时时间,hub永远不会释放node |
-maxSession |
默认值5 个, 可以在节点上并行运行的最大浏览器数,比如说现在node支持Firefox 3.6 ,Firefox 4.0 和Internet Explorer 8 ,-maxSession=1 ,你永远不会有超过1个浏览器运行,如果现在maxSession=1 ,你可以运行两个Firefox 3.6 ,Firefox 4.0 或者一个Firefox 3.6 和一个Internet Explorer 8
|
-browser <params> |
browserName={android, chrome, firefox, htmlunit, internet explorer, iphone, opera} version={browser version} firefox_binary={可执行二进制文件路径} chrome_binary={可执行二进制文件路径} maxInstances={此类型的浏览器最大数量} platform={WINDOWS, LINUX, MAC} |
注意
-maxSession
和maxInstances
的区别!
-
使用json配置node
java -jar selenium-server-standalone.jar -role node -nodeConfig nodeconfig.json
{
"capabilities":
[
{
"browserName": "firefox",
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "internet explorer",
"maxInstances": 1,
"seleniumProtocol": "WebDriver"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": 5555,
"register": true,
"registerCycle": 5000,
"hub": "http://localhost:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets" : [],
"withoutServlets": [],
"custom": {}
}
-
使用json配置hub
java -jar selenium-server-standalone.jar -role hub -hubConfig hubconfig.json
{
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"throwOnCapabilityNotPresent": true,
"cleanUpCycle": 5000,
"role": "hub",
"debug": false,
"browserTimeout": 0,
"timeout": 1800
}
你可以打开
http://127.0.0.1:4444/grid/console
查看Hub管理页面
如何使用?
- 在selenide中
Configuration.remote = http://127.0.0.1:4444/wd/hub
- 在selenium中
DesiredCapabilities chromeDC = DesiredCapabilities.chrome();
WebDriver retDriver = new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub"), chromeDC );