本文主要分为两部分:
一是Selenium Grid环境搭建过程;
二是运行打开百度网站并截图脚本,验证搭建成功。
什么是Grid
Grid是用来实现分布式测试的工具,在一台机器上执行代码,通过grid驱动多台关联机器进行测试。
主机叫Hub, 驱动机器Node1-Noden等。
环境搭建过程
下载并配置JDK(本文略过)。
下载Grid Server
下载网址:https://www.selenium.dev/downloads/
运行 Grid Server
cmd运行命令:
java -jar selenium-server-standalone-3.14.0.jar -role hub -port 4444
安装成功后浏览器访问:http://localhost:4444/
如果运行上述命令报错:
could not open `D:\jdk1.8\lib\amd64\jvm.cfg'*
将把新增的两个jdk和jre放在环境变量的最前面看如下图解决。
修改并运行配置文件:
hub_config.json文件
{
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"registry": "org.openqa.grid.internal.DefaultGridRegistry",
"throwOnCapabilityNotPresent": true,
"cleanUpCycle": 5000,
"role": "hub",
"debug": false,
"browserTimeout": 0,
"timeout": 1800
}
node_config.json文件
{
"capabilities":
[
{
"browserName": "firefox",
"marionette": true,
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "internet explorer",
"platform": "WINDOWS",
"maxInstances": 1,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "safari",
"technologyPreview": false,
"platform": "MAC",
"maxInstances": 1,
"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": {}
}
cmd运行上面两个文件:
命令:
java -jar selenium-server-standalone-3.14.0.jar -role hub -hubConfig hub_config.json
java -jar selenium-server-standalone-3.14.0.jar -role node -nodeConfig node_config.json
运行成功后截图。
浏览器访问地址:http://localhost:4444/grid/console
如下图,配置成功。
远程测试
实现脚本:
from selenium import webdriver #导入webdriver
#配置参数,以chrome浏览器为例
chrom_capabilities={
"browserName":'chrome',#浏览器明恒
"version":"",#版本
"platform":"any",#平台
"javascriptEnabled":"true"#是否支持JavaScript脚本
}
driver=webdriver.Remote('http://192.168.3.8:4444/wd/hub',desired_capabilities=chrom_capabilities)#远程连接
driver.get('http://www.baidu.com')#打开百度
driver.get_screenshot_as_file(r'F:\wx重要\PyCharm Community Edition 2018.1.3\zdh\baidu.png')#屏幕截图
print(driver.title)
driver.quit()
执行上面脚本时报错。
因为我是本机测试需要充当hub和node,只执行了hub命令,后来执行了node命令成功。
注意点
node节点机器和hub主机环境配置需要保持一致。
cmd运行的命令一个是在hub机器上运行 ,一个是在node机运行。
运行命令完成后才可以在pycharm中执行脚本。
最后邀请想提升实力的测试人一起学习
如果你的也有很多问题想要解决,你的测试职业规划也需要一点光亮,你也想跟着大家一起分享探讨,我给你推荐一个「Python自动化测试学习交流群」你缺的知识这里有,你少的技能这里有,你要的大牛也在这里……
来吧!!一起进阶 自动化测试 !!
热门跟贴