selenium grid 配置及参数说明
1、环境准备
下载selenium-server-standalone-4.0.0-alpha-2.jar
chromedriver.exe下载,其他浏览器自行下载
- chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/
- chromedriver.exe主要给奴隶机使用,直接将chromedriver.exe和selenium-server-standalone-4.0.0-alpha-2.jar,放在同一文件夹
jdk下载,jdk安装下载自行百度
- 记得配置环境变量
hub电脑一台,node电脑(不计其数)
2、hub机启动,命令/json启动(这里介绍json启动)--cmd内执行
hub启动:
- java -jar selenium-server-standalone-4.0.0-alpha-2.jar -role hub -hubConfig hub.json
- hub.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 }
- hub,json参数说明(关键参数): --port:宿主机端口,hub端口 ---newSessionWaitTimeout:默认-1,即没有超时;指定一个新的测试session等待执行的间隔时间。即一个代理节点上前后2个测试中间的延时时间,单位为毫秒。 --servlets:在hub上注册一个新的serlet,访问地址为/grid/admin/XXXserlet --throwOnCapabilityNotPresent:默认为true,如果为true则hub只有在当前有测试代理注册的情况下才会接受测试请求;如果为false则如果当前没有代理注册也会接受请求保存到队列直到有代理注册为止。 --capabilityMatcher:一个实现了CapabilityMatcher接口的类,默认指向org.openqa.grid.internal.utils.DefaultCapabilityMatcher;该类用于实现grid在分布测试任务到对应代理时所使用的匹配规则,如果想要更精确的测试分配规则,那么就注册一个自己定义的匹配类。 --prioritizer:一个实现了Prioritizer接口的类。设置grid执行test任务的优先逻辑;默认为null,先来先执行。 --host:ip_or_host指定hub机的ip或者host值 --browserTimeout:浏览器无响应的超时时间 --timeout:所有浏览器运行超时时间,运行超过此时间则会自动回收session,关闭浏览器 --cleanupCycle:代理节点检查超时的周期
node注册:
- java -jar selenium-server-standalone-4.0.0-alpha-2.jar -role node -nodeConfig node.json
- node.jaon:
{ "capabilities": [ { "browserName": "firefox", "maxInstances": 10, "seleniumProtocol": "WebDriver" }, { "browserName": "chrome", "maxInstances": 10, "version": "82.0.3684.1", "wedriver.chrome.driver":"chromedriver.exe", "seleniumProtocol": "WebDriver" }, { "browserName": "internet explorer", "maxInstances": 1, "seleniumProtocol": "WebDriver" } ], "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 10, "port": 5555, "register": true, "registerCycle": 5000, "hub": "http://192.168.1.107:4444", "nodeStatusCheckTimeout": 5000, "nodePolling": 5000, "role": "node", "unregisterIfStillDownAfter": 60000, "downPollingLimit": 2, "debug": false, "servlets" : [], "withoutServlets": [], "custom": {} }
- hub,json参数说明(关键参数): --browserName:节点机名称 --maxInstances:最大启动实例 --maxSession:最大启动session,不能超过最大启动实例 --port:节点机注册端口 --registerCycel:代理节点自动重新注册的周期,单位毫秒;适应于重启了hub时不需要重启所有的代理节点。 --hub:hub地址 --nodePolling:hub检查代理节点的周期 --unregisterIfStillDownAfter:单位毫秒,设定代理节点在无响应多长时间后hub才会注销代理节点注册信息;默认1分钟 --nodeTimeout:客户端的无心跳超时时间
参考博客:
来源:oschina
链接:https://my.oschina.net/u/4233674/blog/3191591