selenium 配合多线程_Java + Selenium 系列之多线程并发执行用例

本文介绍了如何结合Selenium Grid和多线程进行并发测试。首先讲解了Selenium Grid的作用和组成部分,然后详细阐述了环境准备、Hub和Node的配置启动过程。接着,提到了TestNG用于实现并发执行测试的重要性,并讨论了线程安全问题,特别是在多线程执行测试用例时如何避免静态变量冲突。
摘要由CSDN通过智能技术生成

一、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运行状态

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脚本如下:

4、执⾏脚本

node节点配置说明

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

五、TestNG并发执⾏测试

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

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

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

TestNG并发测试配置

解释:

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

thread-count=2 线程数量

六、线程安全

在使用多线程执行用例的时候,我们发现有时候会出现错误,是因为共用静态变量时,同时执行会导致一个被占用,此时需要用ThreadLocal机制

1、创建一个静态的变量

2、设计两个方法去存取 或存放驱动

3、在调用驱动的时候,使用getDriver方法

例如:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值