• 13
  • 13
分享
  • Selenium Grid分布式测试环境搭建——软件测试圈
  • 曼倩诙谐 2021-03-23 10:51:04 字数 2762 阅读 1612 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   如果问软件测试有哪些前景,准确的说,应该是软件测试工程师的职业规划是什么样的。关于一些职业规划上的意见建议,我从下面几个方面梳理一下,供您参考。  1、软件测试行业的现状  2、目前业内人员的现状  3、软件测试工程师的职业规划  4、软件测试工程师的核心竞争力在哪  5、软件测试工程师如何不断提高自己的能力  大厂更加倾向于招收测试开发,更多的初级测试被外包吸收,只会手工测试的人员生存更加艰难。  在经历了18年的裁员潮之后,很多大厂及创业公司都在调整和优化自己的团队结构,特别是对于大厂来说,并不是简单地裁人,而是裁掉单一的手工测试,转而付出更高的薪酬来招收技术更好的测试开发人员。在这个...
            14 14 2222
            分享
          • 软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。一、软件的分类1、按照功能划分:【系统软件】:如操作系统、数据库管理系统,各种驱动软件等;【应用软件】:如Office、有道翻译、QQ等;2、按照技术结构划分:【单机版本】:如Office,画图工具等;【C/S结构软件】:如QQ、微信等;【B/S结构软件】:如新浪、搜狐、google等;3、按照使用终端划分:【PC端】:电脑版QQ等安装在电脑端的软件;【移动端】:如手机版QQ、微信等安装在移动端的软件;4、按照用户划分:【产品软件】:Office、财务处理软件、360卫士等;【项目软件...
            1 1 2055
            分享
          •   1 引言  1.1背景  随着Android应用越来越壮大,对应代码量显著增加,代码逻辑也日趋复杂,此时需要采取一定的行动去保证代码质量,减少逻辑漏洞等,于是严格地执行单元测试编写任务,将单元测试落实到平常开发和维护任务当中去,就是很重要的一环,不可忽视。  然而,很多应用开发者之前并未编写过单元测试代码,那么如果有一篇通俗易懂并带有操作步骤的文章,能帮助应用开发者完成从单元测试小白到入门的过渡,就再好不过了,于是本文就是在此情况写就的,如有不好之处,请多多包涵,谢谢。  1.2 术语和缩略语  2 闲谈单测  2.1 说说我理解的单测  2.1.1 对测试金字塔的理解  本文所指的单测,...
            0 0 1910
            分享
          • 在 Postman 中,用 Environments 来管理环境变量。我们在开发的过程中,往往会用到多个环境:开发环境,测试环境,UAT 环境,生产环境等。我们要调用不同环境的 API 时,只需切换 Postman 的 Environment 即可。下面,我们来具体说下 Postman 环境变量的使用方法。知识扩展:Postman 环境设置介绍第 1 步 创建环境在 Environments 选项卡中,点击 + 号按钮来创建环境。在环境中,创建变量。其中,列中 INITIAL VALUE 和 CURRENT VALUE 的区别是&nb...
            0 0 958
            分享
          • 测试小白如何进行接口测试?Postman从入门到上手就这么简单!在我们日常的测试工作中,接口测试其实很普遍,无论你是做什么测试,功能、自动化亦或是性能测试,都会或多或少接触到接口。最近也有许多人来询问我:接口测试怎么测?接口测试工具有哪些?其实要想学会接口测试,真的可以很简单。下面我来帮你一一剖析:一.什么是接口?可以简单理解成用来连接而开放的入口,比如前端和后端的连续需要用接口,移动端和后台的链接也需要用到接口。连接前端后端和移动端。二.接口都有哪些类型?接口一般分为两种:程序内部的接口系统对外的接口系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他...
            0 0 1491
            分享
      • 51testing软件测试圈微信