selenium grid简单使用

喜你入骨 提交于 2019-12-11 11:15:29

【推荐】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");
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!