本文主要分为两部分:

一是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自动化测试学习交流群」你缺的知识这里有,你少的技能这里有,你要的大牛也在这里……

来吧!!一起进阶 自动化测试 !!