Selenium Grid 会话管理器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/selenium-grid-session-manager。
技能介绍
要解决的问题
并行 UI 测试的痛点往往不在用例本身,而在资源调度。当一套测试需要在多台机器、多种浏览器、不同版本上同时运行时,Selenium Grid 4 只提供了网格的底层能力,节点扩缩容、会话排队、capability 匹配这些运维细节仍要靠人工介入或自写胶水代码。一旦节点宕机、浏览器版本不匹配或会话抢占冲突,测试任务就会堆积、失败、重试,最终失控。
技能如何工作
该技能面向 Selenium Grid 4,主要通过 GraphQL API 和 /status 端点 与网格交互:前者负责查询和操作实时状态,后者用于获取节点健康信息。
核心能力包括:
- 分布式会话管理:在多个节点上创建、跟踪并销毁浏览器会话
- 节点扩缩容:根据负载动态调整节点数量
- 会话排队:资源不足时将请求入队,节点就绪后自动调度
- 能力匹配:按浏览器版本、平台、设备等特性把请求派发到合适的节点
关键步骤大致为:
- 通过
/status端点探活,确认 Hub 与各节点在线状态 - 通过 GraphQL 查询当前会话与节点能力的快照
- 执行 capability 匹配,将请求派发至满足条件的节点
- 会话结束后回收资源并更新队列状态
适用边界与注意点
- 文档提到的安装方式包括
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 集群的会话排队、能力匹配与资源调度能力