selenium grid

作者: zychen143 | 来源:发表于2017-05-04 18:45 被阅读0次

想分布式运行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.0Internet 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}

注意-maxSessionmaxInstances的区别!

  • 使用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管理页面

如何使用?

  1. 在selenide中
Configuration.remote = http://127.0.0.1:4444/wd/hub
  1. 在selenium中
DesiredCapabilities chromeDC = DesiredCapabilities.chrome();
WebDriver retDriver = new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub"), chromeDC );

相关文章

网友评论

    本文标题:selenium grid

    本文链接:https://www.haomeiwen.com/subject/ejjdtxtx.html