Agent Skills
返回列表
💻

Selenium Grid 测试编排器

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/selenium-grid-test-orchestrator-2。

技能介绍

要解决什么问题

当浏览器测试套件膨胀到几十个甚至上百个用例时,单机执行的 WebDriver 会话就成了瓶颈:一次只能跑一个浏览器实例,CI 一次跑上几小时是常态。Selenium Grid 4 虽然提供了分布式节点能力,但手工管理节点注册、会话排队和任务分派非常繁琐。这个技能就是把这套编排逻辑封装起来,让分布式浏览器测试不再需要人工盯着调度细节。

核心能力与工作方式

技能通过 Selenium Grid 的 API 与远端节点交互,核心机制有三层:

  • 会话排队:测试会话提交到 Grid 后进入队列,技能负责监控排队状态并协调资源分配,避免并发提交造成冲突。
  • 节点健康检查:持续跟踪各节点的注册状态与可用性,只把任务分派给健康节点,掉线节点上的会话不会悄悄丢失。
  • 并行执行:依托 WebDriver 协议在多个节点上同时拉起浏览器会话,让不同浏览器、不同版本的测试真正并行跑起来。

典型流程是:技能向 Grid 发起会话请求,Grid 依据节点标签与当前负载匹配合适的节点;会话建立后开始执行测试,结束后释放资源并回报状态,技能据此推进下一批任务。

适用边界与注意事项

这份说明是从上游文档提取整理的,部分内容存在明显的环境依赖:

  • 上游提供 Dev Container(本质上是一个 Docker 容器)作为替代方案,也可以直接构建 Docker 镜像来满足运行环境,这意味着你需要一定的容器化基础。
  • 文档中提到常用自定义 Rake 包装器封装 Bazel 命令,通过 ./go 执行;bazel run 会先构建目标再执行。如果你的项目不使用 Bazel,这部分流程无法直接复用,需要自己调整。
  • 技能依赖 Grid 节点事先正确注册并保持稳定,节点异常掉线时的重试与恢复策略需要在实际环境中验证清楚。

建议先在小规模测试集上跑一遍,确认编排行为符合预期后,再逐步扩大到全量套件。

使用场景

  • CI 流水线里几十个浏览器用例串行跑太久,需要分发到多个 Grid 节点并行执行
  • 同一套 UI 用例要在 Chrome、Firefox 等多个浏览器上同时回归,需要按节点标签分配会话
  • Grid 集群中部分节点掉线,需要调度侧识别不健康节点并把会话分派到其余节点
  • 项目用 Bazel 构建测试目标、经 Rake 包装器统一执行,需要脚本衔接这套流程

适合人员

  • 需要把 Web UI 测试分发到多台机器并行跑、缩短 CI 时间的测试开发工程师
  • 维护 Selenium Grid 集群、关注节点健康与注册状态的测试基础设施工程师
  • 在 CI 流水线里负责浏览器测试执行时长与稳定性的技术负责人
  • 依赖 Bazel 构建目标、用 Rake 包装器统一执行测试的开发团队