01 什么是Selenium Grid
Selenium Grid 是 Selenium套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上
Selenium Grid有两个版本——老版本Grid 1和新版本Grid 2。我们只对新版本做介绍,因为Selenium团队已经逐渐遗弃老版本了
Selenium Grid主要使用 master-slaves (or hub-nodes) 理念 --一个 master/hub 和多个 基于master/hub注册的子节点 slaves/nodes。当我们在master上基于不同的浏览器/系统运行测试用例时,master将会分发给适当的node运行
02 使用时间及如何启动
什么时候使用Selenium Grid
- 同时在不同的浏览器、操作系统和机器上运行测试。最大程度用于兼容性测试
- 减少运行时间
怎样启动Selenium Grid?
启动Selenium Grid的三种方式,一种直接用命令行,另一种用JSON配置文件,最后一种docker启动。
01 命令行启动
将会使用2台机器,一台运行hub另一台运行node,为了方便描述,将运行hub的机器命名为“Machine H”(IP:192.168.1.100),运行node的机器命名为“Machine N”(IP:192.168.1.101)
第一步:
- 配置Java环境
- 已安装需要运行的浏览器
- 下载浏览器driver,放到和selenium server相同的路径下(查看)
,否则在启动node时要加参数,不然启动不了浏览器(java -Dwebdriver.chrome.driver=“C:\yourpath\chromedriver.exe” -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.100:5566/grid/register/,可切换浏览器)
下载selenium server,将selenium-server-standalone-X.XX.jar分别放在“Machine H”和“Machine N”上(自定义路径)
第二步:
在机器“Machine H”上打开命令行,到selenium server所在的路径,运行:java -jar selenium-server-standalone-3.141.59.jar -role hub -port 5566,成功启动你会看到:
或者直接在机器“Machine H”上的浏览器(“Machine N”则需要将IP修改为“Machine H”的)打开:http://localhost:5566/grid/console ,将会看到:
在机器“Machine N”上打开命令行,到selenium server所在的路径,运行:java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.100:5566/grid/register/ -port 5577,成功启动你会看到:
刷新:http://localhost:5566/grid/console ,将会看到:
第三步:
运行测试脚本,将会看到在机器“Machine N”上打开了Chrome浏览器,并运行了测试用例:
from selenium import webdriver
ds = {
'platform': 'ANY',
'browserName': "chrome",
'version': '',
'javascriptEnabled': True
}
dr = webdriver.Remote('http://192.168.1.101:5577/wd/hub', desired_capabilities=ds)
dr.get("https://www.baidu.com")
print dr.name
02 Json配置文件启动
第一步:
创建hub的Json配置文件( 查看)
代码如下:
{
"port": 4444,
"newSessionWaitTimeout":