用途
browser-smoke 用于在真实浏览器中对一个分支或 PR 所影响的页面路由进行冒烟测试。它是一次差异范围内的检查(diff-scoped check),只验证改动可能影响到的路由,不会修复代码,也不会替代发布前的完整 QA。其产出是一个路由表,每条路由附带捕获到的浏览器证据。
主要能力
- 针对变更文件映射出的路由逐一在浏览器中执行检查。
- 每条观察结果采用统一的证据结构,包含 id、result(pass/fail/skipped)以及一个或多个带绝对路径和 SHA256 的工件。
- 检查页面标题、主内容渲染、是否出现可见应用错误或新的控制台错误,以及变更涉及的交互是否正常。
- 支持截图、网络请求/响应、控制台输出和轨迹等证据记录。
- 区分 Pipeline 模式(默认,适用于已授权的实现或验证工作流)与 manual 模式(用户显式控制服务器或仅做观察)。
使用方式
工作流程分为六步:
- 选择一个浏览器驱动。优先复用目标项目已有的浏览器栈,可选机制包括 Playwright Test、Playwright CLI、agent-browser、Playwright MCP、主机原生浏览器、裸 Playwright 库。每次旅程只用一个驱动,不安装新的浏览器栈。
- 识别变更路由。从代码托管平台获取 PR 变更文件,或解析默认分支后进行比较;将变更文件映射到渲染它的路由,不凭组件名推断路由。
- 连接本地服务器。按显式 --port、项目指令、项目服务器配置、环境配置、3000 的顺序选择端口;manual 模式下若端口未监听则以 SKIP 结束。
- 访问各路由。先打开根页面确认渲染内容,再对每个映射路由捕获最新状态并检查。优先使用角色、标签或稳定测试 ID 定位器,配合自动等待和可观察断言。编辑场景需清空字段并回读精确值后再保存,导航或刷新前捕获请求与响应,刷新后验证保存值。
- 记录失败。为每个失败记录路由、复现步骤、渲染错误、截图、相关控制台输出、网络失败和轨迹;保留原始失败和后续通过的请求重试。
- 报告。返回路由、状态、证据、备注组成的表格。仅当所有执行的路由都通过时用 PASS,有路由失败用 FAIL,部分通过部分跳过用 PARTIAL,未执行任何路由用 SKIP。
适用场景
- 用户要求对某个分支或 PR 做冒烟测试。
- 测试受影响页面。
- 运行差异范围内的浏览器检查。
限制
- 不修改代码;技能运行期间若需修复,应转向诊断或实现工作流。
- 不替代发布 QA。
- 不安装新的浏览器栈;缺少命令或浏览器二进制属于准备缺口。
- 外部 Pi worker 不继承主机浏览器工具,只读分析模式无法运行浏览器命令。
- 缺少凭据或桌面访问时,只阻塞受影响的路由。
- 空差异或未执行任何路由时以 SKIP 结束,不得报告为 PASS。
- 外部 OAuth、邮件、支付、短信等操作需要既有明确授权,缺失时在 manual 模式下询问、在 pipeline 模式下仅标记受影响路由为 Skip。