Selenium Grid 自动扩缩容编排器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/selenium-grid-auto-scaling-orchestrator。
技能介绍
要解决的问题
在 CI 环境中跑 Web UI 自动化,负载波动很大:白天几十个并发测试,深夜可能一个都没有。Selenium Grid 的节点数一旦固定,要么高峰期排队严重,要么低谷期机器空转。手动盯着队列增减 Docker 容器既不现实,也容易在扩缩容风暴里出错。这个技能把「根据队列深度自动增减节点」变成可重复执行的编排流程。
核心能力
- 队列驱动的扩缩容:通过 Grid 4 暴露的 GraphQL API 读取测试队列深度(
queue depth),据此决定拉起还是回收节点,而不是依赖固定阈值或定时器。 - Docker 容器生命周期管理:Chrome、Firefox、Edge 三类浏览器节点都以容器形式承载,技能负责创建、销毁与状态跟踪。
- 健康监控:对运行中的节点做健康检查,避免把请求打到已失活的节点上。
关键步骤
- 轮询 Grid 的 GraphQL API,获取当前队列深度与各节点状态;
- 对比队列长度与可用节点数,得出扩容、缩容或维持三种决策之一;
- 执行决策:拉起新容器、停掉多余容器,或保持不动;
- 持续监控节点健康,对异常节点按策略处理。
适用边界与注意点
- 前提是 Grid 4 启用了 GraphQL API,老版本或未开启该接口的环境无法工作。
- 节点运行依赖 Docker,宿主机需能拉取对应浏览器镜像;镜像拉取延迟会直接影响扩容速度。
- 上游资料提到可以用 Docker 镜像或 Dev Container 方式部署运行环境,具体形态取决于流水线约束。
- SKILL.md 中混入了上游仓库的部分构建说明(如 Bazel 相关内容),与核心编排逻辑无直接关系,落地前建议以 Selenium 官方文档为准核对行为。
使用场景
- CI 流水线里 UI 测试并发量波动大,需要根据队列深度增减 Chrome、Firefox、Edge 浏览器节点
- 回归测试高峰期测试排队严重,需要动态拉起更多 Selenium Grid 节点消化积压任务
- 测试结束后容器仍在运行浪费资源,需要按队列状态回收空闲浏览器容器
- Grid 节点运行中失活,需要持续健康监控并管理浏览器节点容器生命周期
适合人员
- 测试基础设施工程师,需要把 Selenium Grid 节点扩缩容接入 CI 自动化流程
- DevOps 工程师,负责用 Docker 管理浏览器节点并优化测试资源利用率
- QA 平台开发者,希望基于 Grid GraphQL API 实现队列驱动的节点调度
- 持续集成负责人,需要在测试并发高峰稳定执行 Web 自动化用例