Webdriver - Selenium Grid Configuration
来源:互联网 发布:mysql查询不重复数据 编辑:程序博客网 时间:2024/05/17 04:53
作者: Max.Bai
时间: 2014/06
1. Start Selenium Hub
java -jar selenium-server-standalone-2.<last_version>.jar-role hub
Can be check the hub status use http://127.0.0.1:4444/grid/console
2. Start Selenium Node
Start with Node contains Selenium RC and Webdriver
java -jar selenium-server-standalone-2.29.0.jar -role node -hub http://localhost:4444/grid/register
Start with Webdriver contains Webdriver
java -jar selenium-server-standalone-2.29.0.jar -role webdriver -hub http://localhost:4444/grid/register
Start with Selenium contains Selenium RC
java -jar selenium-server-standalone-2.29.0.jar -role selenium -hub http://localhost:4444/grid/register
3. Start Hub and Node with Json config
Start Hub with json config file
title HubWebDriverjava -jar selenium-server-standalone-2.29.0.jar-role hub-hubConfig hubconfig.jsonpause
hubconfig.json
{ "host": null, "port": 4444, "newSessionWaitTimeout": 300000, "servlets" : [], "prioritizer": null, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "throwOnCapabilityNotPresent": true, "nodePolling": 5000, "cleanUpCycle": 5000, "nodeTimeout": 360000, "timeout": 480000, "browserTimeout": 0, "maxSession": 5}
Start Node with json file
title NodeWebDriverjava -jar selenium-server-standalone-2.<last_version>.jar-Dwebdriver.ie.driver="ABSOLUTE_PATH\IEDriverServer.exe"-Dwebdriver.chrome.driver="ABSOLUTE_PATH\chromedriver.exe"-Dwebdriver.safari.bin="ABSOLUTE_PATH\Safari.exe"-Dwebdriver.opera.bin="ABSOLUTE_PATH\opera.exe"-Dwebdriver.chrome.bin="ABSOLUTE_PATH\chrome.exe"-Dwebdriver.ie.bin="ABSOLUTE_PATH\iexplore.exe"-role node-nodeConfig nodeconfig.jsonpause
nodeconfig.json
{ "capabilities": [{"seleniumProtocol": "Selenium","platform": "MAC","browserName": "*iexplore","maxInstances": "1"},{"seleniumProtocol": "Selenium","platform": "MAC","browserName": "*firefox","maxInstances": "5","firefox_binary":"c:\sss\firefox.exe"}, { "seleniumProtocol":"Selenium", "browserName":"*firefox", "maxInstances":1 }, { "seleniumProtocol":"WebDriver", "browserName":"firefox", "maxInstances":1, "firefox_binary":"c:\sss\firefox.exe" }, { "seleniumProtocol":"WebDriver", "browserName":"internet explorer", "maxInstances":1 }, { "seleniumProtocol":"WebDriver", "browserName":"chrome", "maxInstances":1 "chrome_binary":"c:\sss\chrome.exe" }, { "seleniumProtocol":"WebDriver", "browserName":"opera", "maxInstances":1 }, { "seleniumProtocol":"WebDriver", "browserName":"safari", "maxInstances":1 } ], "configuration": { "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 5, "port": 5531, "hubHost": "IP Address of the Hub", "register": true, "registerCycle": 5000, "hubPort": 4444 }}
How to view hub status?
http://192.168.9.106:5531/wd/hub/static/resource/hub.html
How to view node status?
http://192.168.9.63:4444/grid/console
Other settings for -browser
- -browser < params > If -browser is not set, a node will start with 5 firefox, 1 chrome, and 1 internet explorer instance (assuming it’s on a windows box). This parameter can be set multiple times on the same line to define multiple types of browsers.
Parameters allowed for -browser: browserName={android, chrome, firefox, htmlunit, internet explorer, iphone, opera} version={browser version} firefox_binary={path to executable binary} chrome_binary={path to executable binary} maxInstances={maximum number of browsers of this type} platform={WINDOWS, LINUX, MAC}
default config json file:
{ "capabilities": [ { "browserName": "*firefox", "maxInstances": 5, "seleniumProtocol": "Selenium" }, { "browserName": "*googlechrome", "maxInstances": 5, "seleniumProtocol": "Selenium" }, { "browserName": "*iexplore", "maxInstances": 1, "seleniumProtocol": "Selenium" }, { "browserName": "firefox", "maxInstances": 5, "seleniumProtocol": "WebDriver" }, { "browserName": "chrome", "maxInstances": 5, "seleniumProtocol": "WebDriver" }, { "browserName": "internet explorer", "maxInstances": 1, "seleniumProtocol": "WebDriver" } ], "configuration": { "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 5, "port": 5555, "host": ip, "register": true, "registerCycle": 5000, "hubPort": 4444, "hubHost": ip }}
{ "host": null, "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "prioritizer": null, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "throwOnCapabilityNotPresent": true, "nodePolling": 5000, "cleanUpCycle": 5000, "timeout": 300000, "browserTimeout": 0, "maxSession": 5, "jettyMaxThreads":-1}
Grid parameter:
role = <hub|node> (default is no grid, just run an RC/webdriver server). When launching a node, the parameters will be forwarded to the server on the node, so you can use something like -role node -trustAllSSLCertificates. In that case, the SeleniumServer will be launch with the trustallSSLCertificates option.
# hub config
host = (hub & node) <IP | hostname> : usually not needed and determined automatically. For exotic network configuration, network with VPN, specifying the host might be necessary.
port = (hub & node) <xxxx> : the port the remote/hub will listen on. Default to 4444.
throwOnCapabilityNotPresent = (hub) <true | false> default to true. If true, the hub will reject test requests right away if no proxy is currently registered that can host that capability.Set it to false to have the request queued until a node supporting the capability is added to the grid.
newSessionWaitTimeout = (hub) <XXXX>. Default to no timeout ( -1 ) the time in ms after which a new test waiting for a node to become available will time out.When that happens, the test will throw an exception before starting a browser.
capabilityMatcher = (hub) a class implementing the CapabilityMatcher interface. Defaults to org.openqa.grid.internal.utils.DefaultCapabilityMatcher. Specify the logic the hub will follow to define if a request can be assigned to a node.Change this class if you want to have the matching process use regular expression instead of exact match for the version of the browser for instance. All the nodes of a grid instance will use the same matcher, defined by the registry.
prioritizer = (hub) a class implementing the Prioritizer interface. Default to null ( no priority = FIFO ).Specify a custom prioritizer if you need the grid to process the tests from the CI, or the IE tests first for instance.
servlets = (hub & node) <com.mycompany.MyServlet,com.mycompany.MyServlet2> to register a new servlet on the hub/node. The servlet will accessible under the path /grid/admin/MyServlet /grid/admin/MyServlet2
grid1Yml = (hub) a YML file following grid1 format.
hubConfig = (hub) a JSON file following grid2 format that defines the hub properties.
nodeConfig = (node) a JSON file following grid2 format that defines the node properties.
# config that will be inherited by the proxy and used for the node management.
cleanupCycle = (node) <XXXX> in ms. How often a proxy will check for timed out thread.
timeout = (node) <XXXX> the timeout in seconds before the hub automatically ends a test that hasn't had any activity in the last X seconds. The browser will be released for another test to use. This typically takes care of the client crashes.
browserTimeout= (hub/node) The timeout in seconds a browser can hang
hub = (node) <http://localhost:4444/grid/register> : the url that will be used to post the registration request. This option takes precedence over -hubHost and -hubPort options.
hubHost = (node) <IP | hostname> : the host address of a hub the registration request should be sent to. Default to localhost. Option -hub takes precedence over this option.
hubPort = (node) <xxxx> : the port listened by a hub the registration request should be sent to. Default to 4444. Option -hub takes precedence over this option.
proxy = (node) the class that will be used to represent the node. By default org.openqa.grid.selenium.proxy.DefaultRemoteProxy.
maxSession = (node) max number of tests that can run at the same time on the node, independently of the browser used.
registerCycle = (node) how often in ms the node will try to register itself again.Allow to restart the hub without having to restart the nodes.
nodePolling = (node) in ms. Interval between alive checks of node how often the hub checks if the node is still alive.
unregisterIfStillDownAfter = (node) in ms. If the node remains down for more than unregisterIfStillDownAfter millisec, it will disappear from the hub.Default is 1min.
downPollingLimit = (node) node is marked as down after downPollingLimit alive checks.
nodeStatusCheckTimeout = (node) in ms. Connection and socket timeout which is used for node alive check.
Relate page:
https://code.google.com/p/selenium/wiki/Grid2
https://code.google.com/p/selenium/source/browse/java/server/src/org/openqa/grid/common/defaults/DefaultNode.json
https://code.google.com/p/selenium/source/browse/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json
- Webdriver - Selenium Grid Configuration
- 部署Selenium Grid + Selenium RC + Webdriver
- Selenium Webdriver 学习总结-Selenium Grid & Webdriver(九)
- Selenium Webdriver 学习总结-Selenium Grid & Webdriver(九)
- Selenium Webdriver 学习总结-Selenium Grid & Webdriver(九)
- Selenium Grid+webdriver+Testng实现多线程运行
- selenium webdriver学习(二十一)------------Selenium Grid深入学习
- selenium webdriver学习(二十一)------------Selenium Grid深入学习
- Selenium WebDriver
- selenium webdriver
- Selenium WebDriver
- Selenium WebDriver
- selenium webdriver
- Selenium WebDriver
- Selenium Webdriver
- 【Selenium】PART2 selenium WebDriver
- 【Selenium】PART3 selenium WebDriver
- [Selenium] selenium webdriver 选择器
- keil 调试指针不跳转 0x00000000 0000 MOVS r0,r0
- 吐槽
- 图的基本术语和定义
- Java线程池原理和使用
- Android 内存使用hprof文件打开方法
- Webdriver - Selenium Grid Configuration
- 黑马程序员-预处理指令
- android文件读写,ndk文件读写
- 递归遍历某个路径下的文件
- 使用 sendfile() 提升网络文件发送性能
- 保存android程序崩溃日志到SD卡
- JPA 开发所需的Jar包 (基于Hibernate)
- 高效的JavaScript代码编写技巧
- 免费的云端软件测试平台-快意测试云平台介绍