【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
简介
selenium grid可以让测试脚本在不同平台、不同浏览器执行,是测试用例分发的框架。
selenium grid 分为两种角色:hub 和 node.
- hub 是管理中心,负责将测试脚本分发给node
- node可以理解为一个测试机(linex/windows/mac),负责执行hub分发的测试用例
hub使用
下载
http://selenium-release.storage.googleapis.com/index.html 下载selenium-server-standalone-2.53.0.jar
启动
命令行输入:
java -jar selenium-server-standalone-2.53.0.jar -role hub
这个命令的含义是让当前电脑当做hub,并启动服务
控制台输出 "Selenium Grid hub is up and running" 说明已经启动成功。
浏览器中打开grid控制台 http://localhost:4444/grid/console
Hub常见参数
- throwOnCapabilityNotPresent : true 默认为 true,表示当前hub只有在有node存在时,才会接受测试请求。为false 则反之;
- capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher这是一个实现了CapabilityMatcher接口的 类,默认指向org.openqa.grid.internal.utils.DefaultCapabilityMatcher该类用于实现grid在分布测试任务到对应node 时所使用的匹配规则,如果想要更精确的测试分配规则,那么就注册一个自己定义的匹配类;
- prioritizer : null 这是一个实现了Prioritizer接口的类。设置grid执行test任务的优先逻辑;默认为null,那个脚本先到 那个先执行;
- port : 4444 这个是hub 默认的端口号;
- newSessionWaitTimeout : -1 默认-1,即没有超时;指定一个新的测试session等待执行的间隔时间。即一个代理节 点上前后2个测试中间的延时时间,单位为毫秒;
- browserTimeout : 0 浏览器无响应的超时时间,默认为0表示没有超时时间
修改Hub配置
-
1.直接通过命令修改:
java -jar selenium-server-standalone-2.53.0.jar -role hub -port 4445
-
2.通过Json文件修改:
java -jar selenium-server-standalone-2.53.0.jar -role hub -hubConfig hub.json
https://github.com/SeleniumHQ/selenium/wiki/Grid2#configuring-the-nodes-by-json
Configuring the hub by JSON
java -jar selenium-server-standalone.jar -role hub -hubConfig hubconfig.json
A sample hubconfig.json file can be seen at https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json
node使用
node要求
- node节点必须要有java环境
- node 节点跟hub 节点机器间可以互相 ping 通。
- node 节点负责执行Selenium 脚本,所以必须有Selenium 环境(脚本语言对应的环境如 java, 各个浏览器及其对应的driver)
启动node并注册到node
java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://192.168.1.110:4444/grid/register
hub的地址是注册hub成功后控制台返回的地址
修改node配置
-
通过命令修改:
java -jar selenium-server-standalone-2.53.0.jar -role rc -port 6666
-
通过JSON文件修改
Configuring the nodes by JSON
java -jar selenium-server-standalone.jar -role node -nodeConfig nodeconfig.json
A sample nodeconfig file for server version 3.x.x (>= beta4) can be seen at https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json
A sample nodeconfig file for server version 2.x.x can be seen at https://github.com/SeleniumHQ/selenium/blob/selenium-2.53.0/java/server/src/org/openqa/grid/common/defaults/DefaultNode.json
Note: the configuration { ... } object in version 2.x.x has been flattened in version 3.x.x (>= beta4)
grid执行测试用例
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
WebDriver driver = new RemoteWebDriver(new URL("http://192.168.29.79:4444/wd/hub"), capabilities);
driver.get("http://www.baidu.com");
来源:oschina
链接:https://my.oschina.net/u/2615608/blog/3062238