Agent Skills
返回列表
💻

Selenium Grid 会话管理器

开发编程 更新于 2026.08.29

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

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

技能介绍

要解决的问题

并行 UI 测试的痛点往往不在用例本身,而在资源调度。当一套测试需要在多台机器、多种浏览器、不同版本上同时运行时,Selenium Grid 4 只提供了网格的底层能力,节点扩缩容、会话排队、capability 匹配这些运维细节仍要靠人工介入或自写胶水代码。一旦节点宕机、浏览器版本不匹配或会话抢占冲突,测试任务就会堆积、失败、重试,最终失控。

技能如何工作

该技能面向 Selenium Grid 4,主要通过 GraphQL API 和 /status 端点 与网格交互:前者负责查询和操作实时状态,后者用于获取节点健康信息。

核心能力包括:

  • 分布式会话管理:在多个节点上创建、跟踪并销毁浏览器会话
  • 节点扩缩容:根据负载动态调整节点数量
  • 会话排队:资源不足时将请求入队,节点就绪后自动调度
  • 能力匹配:按浏览器版本、平台、设备等特性把请求派发到合适的节点

关键步骤大致为:

  1. 通过 /status 端点探活,确认 Hub 与各节点在线状态
  2. 通过 GraphQL 查询当前会话与节点能力的快照
  3. 执行 capability 匹配,将请求派发至满足条件的节点
  4. 会话结束后回收资源并更新队列状态

适用边界与注意点

  • 文档提到的安装方式包括 pip install -r py/requirements_lock.txt、基于 Docker 的 Dev Container 或自行构建镜像,按运行环境选择即可。
  • 上游文档中出现了 Bazel 相关用法(如用 Rake 包装 bazel run),那是上游仓库自身的工程实践,与 Grid 会话管理无关,使用时注意区分。
  • 技能提取自 SeleniumHQ/selenium 的上游文档,实际行为以所装 Grid 4 版本为准,GraphQL schema 在不同版本间可能存在差异。
  • 当前资料未提供完整命令手册,复杂调度场景建议对照官方文档验证。

使用场景

  • 并行 UI 测试时,多个浏览器会话需要在 Selenium Grid 4 的多个节点上分配与回收
  • 节点负载变化时,需要动态扩缩容浏览器节点,保证并行测试任务及时获得执行资源
  • 测试任务指定浏览器版本、平台等能力要求,需要在 Grid 中匹配符合条件的空闲节点
  • 并发请求超过可用节点容量时,需要把多余会话排队,等待节点释放后再调度执行

适合人员

  • 测试平台开发者,需要为并行自动化测试接入 Selenium Grid 4 的会话与节点管理
  • CI/CD 工程师,要在流水线里调度分布式浏览器测试并处理节点扩缩容
  • Web 自动化工程师,负责在 Grid 上运行多浏览器、多平台测试并排查会话分配问题
  • QA 基础设施工程师,需要维护 Grid 4 集群的会话排队、能力匹配与资源调度能力