一、简介
selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和多个node。node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息,同时hub会接受到即将被执行的测试用例及其相关信息,并通过这些信息自动选择可用的且符合浏览器与平台搭配要求的node,node被选中后,测试用例所调用的selenium命令就会被发送到hub,hub再将这些命令发送到指定给该测试用例的node,之后由node执行测试。
二、部署
安装包地址:\nas02\data\ST\selenium_grid
用于部署新node
1.安装selenium\install\jdk-8u291-windows-i586.exe(for X86)或selenium\install\jdk-16.0.1_windows-x64_bin.exe(for X64);
2.命令提示符中输入”java“,验证jdk是否安装成功;
3.运行selenium\start_selenium_server_node.bat;
三、使用
1.访问http://10.9.54.52:5555/grid/console ? 可查看目前已注册到该hub的node;
2.代码示例: from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver import ChromeOptions from selenium.common.exceptions import WebDriverException
def create_remote_webdriver(host=‘10.9.54.52’, platform=None, headless=False): “”" 创建远程selenium webdriver params host:selenium server的IP; params platform:执行测试的node的操作系统,例:WINDOWS/XP/WIN10,指定node时可缺省; params headless:是否设置headless模式; “”" capabilities = DesiredCapabilities.CHROME if platform: capabilities[‘platform’] = platform
options = ChromeOptions()
if headless:
options.add_argument('--headless')
chrome_driver = webdriver.Remote(command_executor=f"http://{host}:5555/wd/hub",
desired_capabilities=capabilities,
options=options)
return chrome_driver
if name == ‘main’: # 指定注册在hub上的所有操作系统为windows的node进行测试 driver = create_remote_webdriver(host=‘10.9.54.52’, platform=‘WINDOWS’, headless=True)
# 指定注册在hub上的所有操作系统为windows xp的node进行测试
# driver = create_remote_webdriver(host='10.9.54.52', platform='XP', headless=True)
# 指定node 10.9.54.67进行测试
# driver = create_remote_webdriver(host='10.9.54.67', headless=True)
# 关闭webdriver
try:
driver.quit()
except WebDriverException:
pass
server
ava -jar selenium-server-standalone-3.141.0.jar -role hub
java -jar selenium-server-standalone-2.53.0.jar -role hub
java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-2.53.0.jar -role node -maxSession 5 -port 5555 -hub http://10.9.54.52:5555 -browser browserName=chrome,maxInstances=5
|