22-selenium之grid分布式测试

 

目录

                  前言

Selenium Grid4介绍

下载selenium  grid

 运行selenium grid

 1. 命令行启动

 2. Json配置文件启动


前言

  • Selenium GridSelenium套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上。

Selenium Grid介绍

  • Router : 路由,负责将请求转发到正确的组件。它是Grid的入口点,它将接收所有外部请求。路由器的行为取决于请求。如果是新的会话请求,则路由器会将其转发到“新会话队列”,该会话将其添加到“新会话队列”。
  • Distributor:主要作用是接收新的会话请求并找到可以在其中创建会话的合适节点。创建会话后,分发服务器在会话映射中存储会话ID与正在执行会话的节点之间的关系。
  • Node:节点,可以在网格中出现多次。每个节点负责管理其所运行机器的可用浏览器的运行。。

  • Session Map:用于保存会话ID和会话正在运行的节点的信息。它在将请求转发到节点的过程中为路由器提供支持。路由器将向会话映射询问与会话ID关联的节点。当以完全分布式模式启动Grid时,Session Map是应该启动的第一个组件。
  • New Session Queue:新会话队列器,从路由器接收新的会话请求,并将其添加到队列中。排队器等待,直到收到请求的响应为止。如果请求超时,则该请求将立即被拒绝,并且不会添加到队列中
  • Event Bus:分发服务器,新会话队列器和会话映射之间的通信路径。

下载selenium  grid

运行selenium grid

   文档:https://github.com/SeleniumHQ/selenium/wiki/Grid2

  1. 命令行启动

    step1:启动hub节点

  • java -jar selenium-server-standalone-3.141.59.jar -role hub   -port 4444

    step2:启动node节点

  • java -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.96.1:4444/grid/register/ -port 4445

    step3:编写脚本验证

# -*- coding: utf-8 -*-
# @Time    : 2021/3/6
# @Author  : 大海

from selenium import webdriver

ds = {'platform': 'ANY',
      'browserName': "chrome",
      'version': '',
      'javascriptEnabled': True
      }
driver = webdriver.Remote('http://192.168.96.1:4444/wd/hub', desired_capabilities=ds)
driver.get("https://www.baidu.com")
print(driver.name)

driver.quit()

  2. Json配置文件启动

    step1:创建hub配置文件

  • 修改端口即可,保存为 hub_config.json文件
  • 启动hub:java -jar selenium-server-standalone-3.141.59.jar -role hub -hubConfig hub_config   
{
  "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
}

    step2:创建node配置文件 

  • 修改hub和port,其他保持不变即可,保存为 node_config.json文件
  • 启动node:java -jar selenium-server-standalone-3.141.59.jar -role node -nodeConfig node_config
{
  "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": "hub地址",
  "nodeStatusCheckTimeout": 5000,
  "nodePolling": 5000,
  "role": "node",
  "unregisterIfStillDownAfter": 60000,
  "downPollingLimit": 2,
  "debug": false,
  "servlets" : [],
  "withoutServlets": [],
  "custom": {}
}

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习de测试小白

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值