1.介绍
主要用于自动化测试的分布式执行,当测试用例需要验证的环境比较多时,可以通过Grid控制测试用例在不同的环境下运行。
可以启动hub与node在一台主机,如果想在其他主机启动node,需满足以下要求:
- 本地hub所在主机与远程node所在主机之间可以用ping命令同行;
- 远程主机必须安装Java环境,因为需要运行Selenium Server;
- 远程主机必须安装测试用例需要的浏览器及驱动文件,驱动文件需要设置环境变量。
2.下载与使用
运行:java -jar selenium-server-standalone-3.141.59.jar
启动hub:java -jar selenium-server-standalone-3.141.59.jar -role hub
启动一个node:java -jar selenium-server-standalone-3.141.59.jar -role node
启动多个node:java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5556
启动远程node所在主机:java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555 -hub http://172.XX.XX.XX:4444/grid/register
3.应用
3.1 Remote实例
启动一个hub和node:
java -jar selenium-server-standalone-3.141.59.jar -role hub
java -jar selenium-server-standalone-3.141.59.jar -role node
运行
from selenium.webdriver import Remote, DesiredCapabilities
# 需要指定运行的浏览器、版本、平台等信息
driver = Remote(desired_capabilities=DesiredCapabilities.CHROME.copy())
driver.get("http://www.baidu.com")
driver.quit()
3.2 创建远程节点
启动一个hub:
java -jar selenium-server-standalone-3.141.59.jar -role hub
启动一个Ubuntu主机远程节点:
java -jar selenium-server-standalone-3.141.59.jar -role node -hub hub所说主机IP地址/grid/register
运行
from selenium.webdriver import Remote, DesiredCapabilities
driver = Remote(command_executor='http://hub主机IP:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME.copy())
driver.get("http://www.baidu.com")
driver.quit()