Selenium Grid方案介绍
Selenium Grid是selenium的一个分布式,可以实现你的脚本在多台电脑上运行的效果
1.Selenium Grid远程运行selenium test
2.主旨是在多个机器上并行运行selenium
优点:所有测试的中心入口点(统一由hub来分配)
管理和控制浏览器运行的Nodes/环境
可扩展
可并行运行测试
可跨平台的测试
负载均衡
它的组成如下图:
node节点可以在任何系统上运行
下载与使用
地址: http://www.selenium.dev/downloads/(需要FQ下载。。)
开启:-role node ,-nodeConfig对文件进行配置
下载最新稳定版本:
进入selenium的git最新网站,查找最新版本的文档,官方文档已经不支持最新版本的运行,
点击红线处,查看 capabilities的配置,复制到node.json文件中,并只保留chrome浏览器的配置(如果使用的是chrome浏览器的话),将node.json文件与selenium grid的jar包放在同一个文件夹下
node.json文件中的capability配置制定了使用什么浏览器,hub分发的原则就是你配置的capabilities,比如你的python代码指定了我想使用chrome浏览器,那么他就会找你这个节点是不是用了chrome浏览器,如果用了就默认找到,如果没用就不会把脚本分发到这个节点上
一定要把webdriver配置到环境变量中,这样就不用写死了,port:-1代表随机,hub中的地址,可以是本机地址,也可以是局域网内的其他电脑的ip地址(我的是mac电脑,然后貌似没有配置也可以远行,也可能之前配环境的时候,已经配置好了。。。)
hub中的地址,可以是本机地址,也可以是局域网内的其他电脑的ip地址,这里我是配置了本机的ip地址
{
"capabilities":
[
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": -1,
"register": true,
"registerCycle": 5000,
"hub": "http://localhost:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets" : [],
"withoutServlets": [],
"custom": {}
}
具体操作步骤如下:
1.先启动hub:控制台cd 到selenium grid java包所在文件夹,执行 java -jar selenium-server-standalone-3.141.59.jar -role hub
2.配置node.json文件(任何名称都可以),如何配置的规则,上面已经讲过
3.启动第一个node节点: java -jar selenium-server-standalone-3.141.59.jar -role node -nodeConfig node.json
4.启动第二个node节点:重新打开一个控制台,再次cd到相应目录,执行 java -jar selenium-server-standalone-3.141.59.jar -role node -nodeConfig node.json
可以看到注册成功的日志记录:
此时查看hub的日志记录:
5.写自动化脚本,怎么写呢,我们可以参考selenium的git文档
浙公网安备 33010602011771号