• 13
  • 13
分享
  • Selenium Grid分布式测试环境搭建——软件测试圈
  • 曼倩诙谐 2021-03-23 10:51:04 字数 2762 阅读 1350 收藏 13

  本文主要分为两部分:

  一是Selenium Grid环境搭建过程;

  二是运行打开百度网站并截图脚本,验证搭建成功。

  什么是Grid

  Grid是用来实现分布式测试的工具,在一台机器上执行代码,通过grid驱动多台关联机器进行测试。

  主机叫Hub, 驱动机器Node1-Noden等。

1.jpg

  环境搭建过程

  下载并配置JDK(本文略过)。

  下载Grid Server

  下载网址:https://www.selenium.dev/downloads/

  运行 Grid Server

  cmd运行命令:

java -jar selenium-server-standalone-3.14.0.jar -role hub -port 4444

1-1.png

  安装成功后浏览器访问:http://localhost:4444/

1-2.png

  如果运行上述命令报错:

could not open `D:\jdk1.8\lib\amd64\jvm.cfg'*

  将把新增的两个jdk和jre放在环境变量的最前面看如下图解决。

1-3.jpg

  修改并运行配置文件:

  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

  运行成功后截图。

1-4.jpg

  浏览器访问地址:http://localhost:4444/grid/console

  如下图,配置成功。

1-5.jpg

  远程测试

  实现脚本:

 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()

   

  执行上面脚本时报错。

1-6.jpg

  因为我是本机测试需要充当hub和node,只执行了hub命令,后来执行了node命令成功。

  注意点

  node节点机器和hub主机环境配置需要保持一致。

  cmd运行的命令一个是在hub机器上运行 ,一个是在node机运行。

  运行命令完成后才可以在pycharm中执行脚本。


作者:桃子   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、 本年度工作完成情况时光飞逝,在这年里本人独立负责测试的项目10个,与其他测试人员联合测试的项目9个以及GIS应用虚拟项目(2个版本)。其中独立负责的项目对项目的开发周期做全程跟踪测试,联合测试的项目协助其他测试人员完成项目测试工作。繁忙的工作使自己在过去的一年里学到了很多,同时也提高了自己各方面的能力。感谢领导的支持和指教,现总结如下:独立负责的项目列表:《湖南xx空调进销存系统》《湖南xx空调售后服务系统》《长沙统计局数据管理平台》《长沙统计局数据展示系统》《长沙统计局GIS应用系统》《xx电网 WEB GIS系统》《xx电网 移动电子化移交系统》《xx电网 东莞局单线图绘制系统》《电...
            11 11 703
            分享
          • 今天整理了HTTP及HTTPS协议原理及流程,主要体现在: 言简意赅,一言中的,最主要的可以 看图识字;1、HTTP协议1.1 协议定义一种分布式、协作式,面向应用层的超媒体信息系统特点一种通用的、无状态(stateless) 的协议表现形式可输入的和可协商性的,允许系统能被建立而独立于数据传输应用场景应用于 超文本传输,名称服务器和分布对象管理系统等1.2 原理1.2.1 客户端主要职能一个向服务器发送请求;接收服务器返回的报文并解析成友善的信息提供给我们阅读;应用类型    浏览器    桌面应用,app应用1.2.2 服务器端处...
            1 2 17837
            分享
          •   一个Bug的生命周期是从创建开始到关闭结束,而Bug能否关闭就取决于回归测试的结果,测试人员可能很多都对Bug灵敏度有较高要求,但是对于回归测试的把控或质量掌握的程度却比较模糊。而关于回归测试的范围、回归测试的开展正是本文讨论的重点。  Bug回归的重要性  回归测试是软件测试中不可忽视的一部分,回归测试是对问题修改后,重新进行测试并确认修改没有引入新错误,或者导致其他程序出现错误。  作为软件生命周期的一部分,回归测试在整个软件测试过程中占据着相当大的分量,在敏捷测试的每个阶段都要进行多次回归测试。  开发人员修改的局部问题时,可能已经处理了表面症状,所以主要测试其修改的页面和它的底层逻...
            3 3 822
            分享
          •   一.人工智能的发展历史  人工智能诞生于上世纪40~50年代,按照“人工智能之父”艾伦·图灵的定义:如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。1956年夏天,美国达特茅斯学院举行了历史上第一次人工智能研讨会,会上麦卡锡首次提出了“人工智能”这个概念,被认为是人工智能诞生的标志。人工智能在上世纪20世纪50~70年代迎来黄金时代,在1966年~1972年期间,美国斯坦福国际研究所研制出机器人Shakey,这是首台采用人工智能的移动机器人,1966年美国麻省理工学院(MIT)的魏泽鲍姆发布了世界上第一个聊天机器人ELIZA。ELIZA的智能...
            0 0 894
            分享
          • 在 Postman 中,用 Environments 来管理环境变量。我们在开发的过程中,往往会用到多个环境:开发环境,测试环境,UAT 环境,生产环境等。我们要调用不同环境的 API 时,只需切换 Postman 的 Environment 即可。下面,我们来具体说下 Postman 环境变量的使用方法。知识扩展:Postman 环境设置介绍第 1 步 创建环境在 Environments 选项卡中,点击 + 号按钮来创建环境。在环境中,创建变量。其中,列中 INITIAL VALUE 和 CURRENT VALUE 的区别是&nb...
            0 0 589
            分享
      • 51testing软件测试圈微信