Java + Selenium 系列之多线程并发执行用例

一、Selenium   Grid 

什么是Selenium  Grid?  

Selenium  Grid是Selenium的三⼤组件之一

Selenium  Grid允许⽤⼾同时在不同的机器和系统上测试不同浏览器

二、Selenium  Grid组成
hub节点

中⼼节点,或总控节点 管理各个node节点的注册信息和状态信息 接收并转发客⼾端(测试脚本)请求到合适的node节点 node节点

⼦节点,或代理节点 负责注册配置信息到hub节点(平台、浏览器、浏览器版本等) 负责接收来⾃hub节点的转发的请求以执⾏具体⽤例 也可单独作为远程节点执⾏测试⽤例

三、环境准备 

测试机器安装JDK,配置环境变量

下载selenium-server-standalone-x.x.x.jar

 

参考链接https://npm.taobao.org/mirrors/selenium

四、配置运⾏ 

1、启动hub 

java -jar selenium-server-standalone-3.141.59.jar -role hub -port 8888 -maxSession 10

参数解释:

java -jar selenium-server-standalone-3.141.59.jar ----------运⾏jar包

-role hub   ----------以hub的⻆⾊运⾏

-port 8888 ----------指定hub运⾏的端⼝(默认为4444)

-maxSession  10   ---------最⼤的处理会话

为了⽅便执⾏,可以写成bat脚本再执⾏

2、查看hub的运⾏状态 

浏览器中输⼊ http://localhost:8888/grid/console ,可以打开hub运行状态

Java + Selenium 系列之多线程并发执行用例

 

 

 

3、启动node 

以chrome的配置为例:

java -Dwebdriver.chrome.driver="chromedriver.exe" -jar selenium-server-standalone-3.141.59.jar -role node -hub "http://192.168.4.4:8888/grid/register" -port 5558 -browser "browserName=chrome,maxInstances=2,version=68,platform=WINDOWS"

参数解释:

Dwebdriver.chrome.driver=chromedriver.exe ---------指定chromeDriver驱动所在的路径(本地)

-jar selenium-server-standalone-3.141.59.jar-----------运⾏jar包

-role node -------------以node⻆⾊执⾏

-hub "http://192.168.1.222:8888/grid/register" -----------------指定要链接的hub地址,这样node才能和hub通讯连接上

-port 5558-----------node的执⾏端

-browser  browserName=chrome,maxInstances=2,version=68,platform=WINDOWS

      browserName=chrome运⾏的浏览器名称

      maxInstances=2  最多⽀持两个浏览器⽰例

      version=68浏览器版本号

      platform=WINDOWS平台名称

转换成bat脚本如下:
Java + Selenium 系列之多线程并发执行用例

 

 

4、执⾏脚本 

Java + Selenium 系列之多线程并发执行用例

node节点配置说明 

node节点可以配置单⼀浏览器,如chrome、firefox、IE等等

五、TestNG并发执⾏测试 
Selenium Grid能够分布式在不同机器上运⾏不同浏览器,但是我们看到的串⾏的效果(也就是⼀个浏览器执⾏结束 后,再运⾏另外⼀个浏览器)。要达到并发执⾏的效果,Selenium Grid是做不

的,我们需要通过TestNG单元测试 框架所带的并发执⾏机制。并发执⾏能够带来的好处:

减少了执⾏时间:并⾏测试也就意味着多个浏览器可以在同⼀时间被同时执⾏,从⽽减少了整体测试所花费的时 间 允许多个线程并⾏同时执⾏⼀个测试脚本/不同的测试脚本

TestNG并发测试配置 

Java + Selenium 系列之多线程并发执行用例

解释:
parallel=tests表⽰以test标签对为⼀个线程单位

thread-count=2 线程数量

上一篇:集线器(Hub)、交换机(SW)、路由器(router)对比区别


下一篇:day4迭代器&生成器&正则表达式