Robot Framework自动化测试----利用selenium grid进行分布式执行

参考博文:Selenium Grid的原理、配置与使用_雨墨轩痕-CSDN博客6.Selenium GridSelenium Grid在前面介绍Selenium的时候说过它有三大组件,Selenium Grid就是其中之一而作用就是分布式执行测试。讲分布式之前还是要说说UI自动化的优势来突出Selenium Grid,最简单的两点解决重复执行测试、解决多浏览器兼容这是UI自动化的价值;那分布式是什么概念?简单的说就是老大收到任务,分发给手下去干;通过Selenium G...https://blog.csdn.net/ouyanggengcheng/article/details/79935657

1、下载软件:selenium-server-standalone-x.xxx.x.jar

地址:http://selenium-release.storage.googleapis.com/index.html

对着自己的selenium版本,我下载了:

 2、查看自己的环境有没有装jdk:命令:java -version;如果已经安装就可以直接进行第3步;

3、在selenium-server-standalone-x.xxx.x.jar包所在的文件夹执行cmd:

设置hub节点机器命令(如果这台机器也需要执行脚本可以同时设置成Node节点机):java -jar selenium-server-standalone-3.141.0.jar -role hub -maxSession 10 -port 4444

运行成功后访问:http://localhost:4444/grid/console

参数意义:

l -role hub表示启动运行hub;

l -port是设置端口号,hub的默认端口是4444,这里使用的是默认的端口,当然可以自己配置;

l -maxSession为最大会话请求,这个参数主要要用并发执行测试用例,默认是1,建议设置10及以上。

4、在要设置的node节点的远程机上安装(hub机和node机的ip要互相能ping通):jdk\selenium-server-standalone-x.xxx.x.jar\chromedriver.exe(因为我的这台机器之前就能运行rf的ui自动化,所以没有再额外安装chromedriver.exe)

在selenium-server-standalone-x.xxx.x.jar包所在位置执行命令:
java -jar selenium-server-standalone-3.141.0.jar -role node -port 5555 -hub http://10.4.35.3:4444/grid/register -maxSession 5 -browser browserName=chrome,seleniumProtocol=WebDriver,maxInstances=5,platform=WIN10,version=94.0.4606.61

 运行成功后访问:http://localhost:4444/grid/console

 以上参数的意义:

参数解析:

l -role node:表示启动的是node节点

l  -port 5555:指定node节点端口

l  -hub http://192.168.0.245:4444/grid/register:表示hub机地址

l -maxSession 5:node节点最大会话请求

l -browser browserName=chrome,seleniumProtocol=WebDriver,maxInstances=5,platform=WIN10,version=94.0.4606.61

browserName表示浏览器名字,如chrome、firefox、ie;maxInstances表示最大实例,可以理解为最多可运行的浏览器数,这个值很关键,不能大于前面maxSession的值,否则可能会出错;platform表示操作系统;version表示浏览器版本。

5、配置rf:

配置了两台node节点机器node1和node2,发现在hub机器上选择执行两个用例A和B,A用例在节点1node1上执行了,B用例在节点2:node2上执行了,并且是串行不是并行怎么回事?

上面的疑问终于搞明白了,原来装了selenium grid还需要自己写一个多线程程序不然默认就是顺序执行的

在看了多方资料发现robotframework居然有一个插件是可以多线程运行的:pabot:

安装:pip install robotframework-pabot

使用:

1、到测试用例或者测试集所在的目录

2、执行命令:pabot --testlevelsplit --processes 2 JSSDK_Light.robot  

运行后发现可以同时打开2个chrome运行脚本,相当于运行脚本时间减半,再搭配上selenium grid,可以本地运行命令,让Node节点机开2个chrome运行脚本,好香

关于pabot的参数和解释:

pabot [--verbose|--testlevelsplit|--command .. --end-command|
       --processes num|--pabotlib|--pabotlibhost host|--pabotlibport port|
       --artifacts extensions|--artifactsinsubfolders|
       --resourcefile file|--argumentfile[num] file|--suitesfrom file] 
      [robot options] [path ...]

–verbose
显示更多执行输出。

–testlevelsplit
在测试用例级别而不是默认测试套件级别上拆分执行。

–processes [进程数]
要使用多少个并行执行程序(默认最大值为2和cpu数)

–pabotlib
启动PabotLib远程服务器。 这样可以在并行测试执行之间进行锁定和资源分配。

–pabotlibhost [主机名]
PabotLib远程服务器的主机名(默认为127.0.0.1)

如果与–pabotlib选项一起使用,将更改创建的远程服务器的主机侦听地址

如果在没有–pabotlib选项的情况下使用,将连接到给定主机中已运行的PabotLib远程服务器实例。

远程服务器也可以与pabot实例分开启动和执行:

–pabotlibport [端口]
PabotLib远程服务器的端口号(默认为8270)

–resourcefile [文件路径]
可以包含用于分发资源的共享变量的文件的指示符。​​​​​​​

参考博文:

python openpyxl 返回单元格行列_python openpyxl使用方法详解_weixin_39929687的博客-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值