1.两台计算机均访问:http://www.seleniumhq.org/download/,单击下载Selenium-Server-Standalone-3.13.0.jar,如下图:

2.打开机器A(假如IP地址是 192.168.1.1)的终端,将目录切换到方才下载的jar包的目录,然后执行如下语句:
java -jar selenium-server-standalone-3.13.0.jar -role hub
3.在机器A的浏览器地址栏访问http://localhost:4444/grid/console,若访问的网页中显示出“view config”的链接,表示hub已经成功启动。
4.在机器B(假如IP地址是 192.168.1.2)中打开终端,将目录切换到jar包的目录,输入如下命令:
java -jar selenium-server-standalone-3.13.0.jar -role node -port 5555 -hub http://192.168.1.1:4444/grid/register
5.再次访问http://192.168.1.1:4444/grid/console,验证node 节点是否在Hub上注册成功,注册成功会看到下图:

6.编写分布式测试脚本:
from selenium.webdriver import Remote
# 指定node主机与浏览器为字典,主键不能重复
dic = {
'http://192.168.1.2:5555/wd/hub':'chrome',
'http://192.168.0.1:4444/wd/hub':'chrome',
'http://192.168.0.1:5556/wd/hub':'chrome'
}
# 循环不同的浏览器执行脚本
for host,browser in dic.items():
print(host,browser)
dr = Remote(command_executor=host,
desired_capabilities={
"browserName": "chrome",
"video": "True",
"palaform": "MAC"
}
)
# 执行用例
dr.get("http://www.baidu.com/")
dr.find_element_by_id("kw").send_keys("selenium grid")
dr.find_element_by_id("su").click()
print("OK")
dr.quit()
测试结果:
机器B上计算机会执行脚本,执行完毕后退出,机器A上可以看到自动化测试的执行结果:
网友评论