最近准备通过 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"
}
}
}