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博客