selenium 配合多线程_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运行状态

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方法

例如:

原文:https://www.cnblogs.com/wanshuang/p/12634022.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值