Selenium 如何自主进行 Selenium Grid node 节点管理?

太匆匆 · 2021年07月20日 · 最后由 太匆匆 回复于 2021年07月20日 · 1780 次阅读

最近准备通过 Selenium Grid 搭建分布式测试环境,希望通过 Selenium Grid 的相关接口获取各个节点状态,根据节点使用情况实现节点的动态管理(自行增删),同时也可以根据节点状态更好地来进行 UI 自动化测试的任务管理。

因此我去阅读了 Selenium Grid 3 和 Selenium Gid 4 的官方文档,发现 Grid 3 主要通过 Hub 来管理节点,Grid 4 中(个人理解)是把 Hub 的功能进行了细分,分成 Router、Distributor、Session Map、New Session Queuer、Event Bus。目前主要还是通过 Hub 自行来进行节点管理,并无对外的接口。

这里就想咨询一下各位在使用 Grid 进行分布式测试的时候,有无自主进行节点管理的需求,又是如何进行管理的呢

已知 /status 接口似乎只是针对是否配置节点进行判断,并不能完全满足使用需求:

未配置节点返回信息

{
  "status": 0,
  "value": {
    "ready": false,
    "message": "No spare hub capacity",
    "build": {
      "revision": "e82be7d358",
      "time": "2018-11-14T08:25:53",
      "version": "3.141.59"
    },
    "os": {
      "arch": "amd64",
      "name": "Linux",
      "version": "4.15.0-54-generic"
    },
    "java": {
      "version": "1.8.0_292"
    }
  }
}

配置节点后返回信息

{
  "status": 0,
  "value": {
    "ready": true,
    "message": "Hub has capacity",
    "build": {
      "revision": "e82be7d358",
      "time": "2018-11-14T08:25:53",
      "version": "3.141.59"
    },
    "os": {
      "arch": "amd64",
      "name": "Linux",
      "version": "4.15.0-54-generic"
    },
    "java": {
      "version": "1.8.0_292"
    }
  }
}
共收到 1 条回复 时间 点赞

也有可能是我理解的不够全面,期待对这块内容更清楚的同学指点,我也再去研究一下

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册