Selenium Grid分布式测试环境搭建

发表于:2021-3-11 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:桃子    来源:51Testing软件测试网原创

  本文主要分为两部分:
  一是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中执行脚本。

      版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号