Selenium Grid 并行执行器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/selenium-grid-parallel-executor。
技能介绍
这个技能解决什么问题
浏览器自动化测试在单机上跑得很慢。当用例数量增长到几十甚至上百条,单进程的 WebDriver 会话只能串行执行,一次完整回归可能要耗费数小时。Selenium Grid 虽然提供了横向扩展的能力,但把测试代码真正调度到多个节点上并不简单:你需要手动管理 RemoteWebDriver 连接、处理节点能力(capability)匹配、在会话失败后决定是否重试,以及收集分散在各节点上的执行结果。
这个技能把这些杂活收敛成一套可复用的编排逻辑,让你把精力放在用例本身。
它的工作方式
技能的核心链路可以拆成三步:
- 会话分发:通过
RemoteWebDriver配合DesiredCapabilities描述目标浏览器与平台,把测试任务分发到 Grid 的各个节点上,而不是绑定在本地驱动上。 - 等待与重试:使用
WebDriverWait处理页面元素的异步加载,并内置重试策略,在节点抖动或元素暂时不可用时自动恢复,而不是直接把用例判为失败。 - 结果汇总:所有执行结果通过 ExtentReports 聚合成一份 HTML 测试报告,方便在 CI 产物里直接查看每条用例的断言轨迹和失败截图。
适用边界与注意点
- 它依赖一套可用的 Selenium Grid 环境(Hub 与 Node),本地单机跑
webdriver的旧写法不适用。 - 上游文档提到可以用 Docker 镜像或 Dev Container 构建执行环境,如果你的 Grid 节点本身就是容器化部署,这是比较顺的路线。
- 技能内部涉及一些构建层面的细节(例如用自定义的 Rake 封装调用
bazel run来构建并执行目标),这部分依赖你项目里已有的工具链配置,并非所有项目都能直接照搬。 - 重试策略会掩盖真实的环境不稳定,建议在 CI 上区分「重试后通过」与「首轮即通过」,避免覆盖率数据失真。
使用场景
- 回归套件有上百条浏览器用例,需要分发到 Grid 多节点并行跑以缩短 CI 耗时。
- Grid 节点偶尔抖动导致会话失败,需要按重试策略自动重跑,而不是直接判失败。
- 需要把分散在各节点的执行结果汇总成一份带断言轨迹和失败截图的 HTML 报告。
- Grid 节点已容器化,需要按 Docker 镜像或 Dev Container 的方式搭建自动化执行环境。
适合人员
- Web 端自动化测试工程师,单机跑不完上百条回归用例,需要把任务分发到 Grid 多节点并行执行。
- 持续集成负责人,流水线里浏览器测试耗时过长,需要通过并行编排压缩 CI 墙钟时间。
- QA 团队负责人,需要为团队汇总一份包含失败截图和断言轨迹的统一 HTML 测试报告。
- 基础设施工程师,Grid 节点已容器化,需要为自动化执行搭建 Docker 镜像或 Dev Container 环境。