selenium Grid使用

Posted ianduin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium Grid使用相关的知识,希望对你有一定的参考价值。

1.1 Selenium Grid简介

Selenium Grid组件专门用于远程分布式测试或并发测试,通过并发执行测试用例的方式可以提高测试用例的执行速度和效率,解决界面自动化测试执行速度过慢的问题。

Selenium Grid使用Hub和Node模式,一天计算机作为Hub(管理中心)管理其他多个Node(节点)计算机,Hub负责将测试用例分发给多个Node机执行,并收集多台Node机执行结果的报告,汇总后提交一份总的测试报告,如图:

Hub:

l  在分布式测试模式中,只能存在一个Hub节点;

l  负责管理测试脚本,并负责发送节本给其他Node节点;

l  所有的Node节点计算机必须先在作为Hub的计算机中进行注册,注册成功后在和Hub计算机通信,Node节点计算机会告知Hub的信息,如:浏览器相关信息、操作系统

l  Hub计算机可以给自己分配执行测试用例的任务

l  Hub计算机分发的测试用例任务会在各个Node节点执行

Node:

l  在分布式测试模式中,可以有至少一个Node节点

l  Node节点会打开本地的浏览器完成测试任务并返回测试结果给Hub

l  Node节点的操作系统和浏览器版本无需和hub保持一致

l  在Node节点上可以同时打开多个浏览器并执行测试任务

1.2 分布式环境搭建

Selenium Grid是基于java开发的jar包,必须要有jdk环境才能运行

去官网(https://www.seleniumhq.org/download/)下载Selenium Standalone Server

 

1.3 Hub启动参数说明

参数名称

参数含义

-role hub

启动hub服务,等待node注册

-hubConfig [jsonfile]

设置一个符合grid规则的json格式的hub配置文件,详细配置见:

https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json

-port

指定hub端口

-host

指定bub机的ip或者host值,一般不需要设置

-newSessionWaitTimeout

执行一个新的session等待执行的间隔时间,即一个代理节点上前后两个测试间的时间间隔,单位毫秒,默认为-1,即没有超时

-browserTimeout

浏览器无响应的超时时间

 

1.4 Node启动参数说明

参数名称

参数含义

-role [node|wd|rc]

为node时,表示注册的RC可以支持所有版本的selenium

为wb时,不支持selenium1,也可以写成webdriver

为rc时,仅支持selenium1

-hub hub_url

注册到hub,hub_url表示hub的访问地址,默认值为:http://hubip:4444/grid/register

-port

节点计算机提供远程连接的端口号,也是hub的监听端口

-timeout

Node连接hub的超时时间

-maxSession

在一个node节点中,允许最多打开多少个浏览窗口

-browser

设定node计算机允许使用的浏览器信息,如:

browserName=firefox,version=60.0,firefox_binary=d:/firefox60/firefox,maxInstances=3,platform=WINDOWS

maxInstances:最多允许同事启动的浏览器窗口数

-browserTimeout

浏览器无响应的超时时间

-registerCycle

Node间隔多少毫秒去连接hub,以便hub重启时,不需要重启node

-nodeTimeout

客户端超时时间

-nodeConfig [jsonfile]

符合grid规则的json格式的node配置文件,详见:

https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json

 

1.5 远程调用Firefox

1.5.1 条件准备

准备两台计算机A和B,A做Hub节点,B做Node

两台计算机都要准备selenium Grid。

1.5.2 操作步骤

 

1、 在A机cmd窗口,进入selenium-server-standalone-3.141.59.jar包安装目录,执行如下语句:

java -jar selenium-server-standalone-3.141.59.jar -role hub

执行结果如下:

 

2、 在A机浏览器输入:http://localhost:4444/grid/console,出现如下界面则表示hub启动成功

 

3、 在B机cmd窗口输入如下命令启动Node:

java -Dwebdriver.gecko.driver=D:\geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.168.1.2:4444/grid/register -port 6666 -maxSession 5 -browser browserName="firefox",maxInstances=5

192.168.1.2:4444为A机HubIP及端口

1.6 远程调用Chrome

1.6.1 条件准备

准备两台计算机A和B,A做Hub节点,B做Node

两台计算机都要准备selenium Grid。

1.6.2 操作步骤

 

1、 在A机cmd窗口,进入selenium-server-standalone-3.141.59.jar包安装目录,执行如下语句:

java -jar selenium-server-standalone-3.141.59.jar -role hub

执行结果如下:

 

2、 在A机浏览器输入:http://localhost:4444/grid/console,出现如下界面则表示hub启动成功

 

3、 在B机cmd窗口输入如下命令启动Node:

java -Dwebdriver.gecko.driver=D:\geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.168.1.2:4444/grid/register -port 6666 -maxSession 5 -browser browserName="firefox",maxInstances=5

192.168.1.2:4444为A机HubIP及端口

1.7 远程调用IE

1.7.1 条件准备

准备两台计算机A和B,A做Hub节点,B做Node

两台计算机都要准备selenium Grid。

1.7.2 操作步骤

 

1、 在A机cmd窗口,进入selenium-server-standalone-3.141.59.jar包安装目录,执行如下语句:

java -jar selenium-server-standalone-3.141.59.jar -role hub

执行结果如下:

 

2、 在A机浏览器输入:http://localhost:4444/grid/console,出现如下界面则表示hub启动成功

 

3、 在B机cmd窗口输入如下命令启动Node:

java -Dwebdriver.gecko.driver=D:\geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.168.1.2:4444/grid/register -port 6666 -maxSession 5 -browser browserName="firefox",maxInstances=5

192.168.1.2:4444为A机HubIP及端口

以上是关于selenium Grid使用的主要内容,如果未能解决你的问题,请参考以下文章

Selenium-Grid:如何使用`user-extensions.js`

多线程 Selenium WebDriver 与 Selenium Grid

selenium 测试框架中使用grid

Python+Selenium笔记:配置selenium Grid

Selenium Grid操作使用指南

配置selenium grid