一、selenium grid简介
selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和多个node。node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息,同时hub会接受到即将被执行的测试用例及其相关信息,并通过这些信息自动选择可用的且符合浏览器与平台搭配要求的node,node被选中后,测试用例所调用的selenium命令就会被发送到hub,hub再将这些命令发送到指定给该测试用例的node,之后由node执行测试。
二、环境准备
java安装包:jdk-8u101-windows-x64.exe
python 3.4安装包:python-3.4.0.amd64.msi
selenium安装:pip install selenium
chrome浏览器:chrome64bit_58.0.3029.110.exe(与Chromedriver版本对应)
下载地址:https://download.csdn.net/download/zb455405775/10472016
Chromedriver下载地址:https://download.csdn.net/download/zb455405775/10472001
selenium-server-standalone-v3.0.1下载地址:https://download.csdn.net/download/zb455405775/10472262
准备2台pc,如果是虚拟机,选择桥接,2台pc互相能ping通
三、开始部署
1. hub、node都需要python环境
1)安装python3.4;
2)pip install selenium 安装 selenium;
3)把下载好的Chromedriver.exe 放在python根目录
4)安装下载好的chrome浏览器 chrome64bit_58.0.3029.110.exe
2. hub配置
这里使用selenium-server-standalone-v3.0.1.jar,hub、node都需要 selenium-server-standalone-v3.0.1.jar 文件启动
cmd里运行: java -jar selenium-server-standalone-v3.0.1.jar -role hub -port 4455
说明:(1)selenium-server-standalone-v3.0.1.jar如果不在当前目录,需要添加路径;
(2)-port 4455 可以不写,hub默认4444端口
(3)可以把启动命令写在.bat批处理里,方便执行
启动成功后截图:如下图说明启动成功
也可以通过配置json文件启动,后续在写
java -jar selenium-server-standalone-v3.0.1.jar -role hub xxx.json
3.node配置
这里使用selenium-server-standalone-v3.0.1.jar,hub、node都需要 selenium-server-standalone-v3.0.1.jar 文件启动
cmd里运行:
java -jar selenium-server-standalone-v3.0.1.jar -role node -port 5555 -hub http://hub_ip:4444/grid/register
说明:(1)selenium-server-standalone-v3.0.1.jar如果不在当前目录,需要添加路径;
(2)-port 5555 可以不写,node默认5555端口
(3)可以把启动命令写在.bat批处理里,方便执行
启动成功后截图:node如下图说明启动成功
hub上会显示如下截图:
4.查看grid信息
浏览器打开:http://hub_ip:4444/grid/console 可以查看hub信息,和已经连上的node信息
四、环境测试
编写python脚本:
# coding=utf-8
from selenium import webdriver
import os
chrome_driver = os.path.abspath(r"C:\software\chromedriver")
os.environ["webdriver.chrome.driver"] = chrome_driver
chrome_capabilities = {
"browserName": "chrome", # 浏览器名称
"version": "", # 操作系统版本
"platform": "ANY", # 平台,这里可以是windows、linux、andriod等等
"javascriptEnabled": True, # 是否启用js
"webdriver.chrome.driver": chrome_driver
}
driver = webdriver.Remote("http://node_ip:5555/wd/hub", desired_capabilities=chrome_capabilities)
# driver.set_window_size(1280,720)
driver.get("http://www.baidu.com")
print(driver.title)
driver.quit()
node_ip 需要修改成自己的node ip地址;
成功运行结果如下图:
node端日志: