用途
browser-test 是一个用于自动化 UI 测试的技能,由 browser-record(捕获录制)与 browser-replay(回放验证)组合而成。其目标是在真实浏览器中验证界面功能、用户流程以及前端改动是否正常工作,并且每一次测试都会产出一个可回放的 RVF 产物,而不是一次性的临时运行结果。
适用场景包括:验证 UI 功能与用户流程;产出一个基线会话,供未来的回归测试进行对比;在 CI 失败时重新运行已存储的测试会话,无需重新编写测试。
主要能力
- 录制测试运行:组合 browser-record,分配一个 kind 为 browser-session 的 RVF 容器,并启动一条 ruvector 轨迹。
- 驱动交互:通过 browser_open、browser_click、browser_fill、browser_type、browser_select 执行操作,每个动作都会发出一个 trajectory-step。
- 等待与断言:在断言前用 browser_wait 等待元素或网络空闲;通过 browser_get-text、browser_get-value、browser_get-title、browser_get-url 进行验证,验证结果写入 RVF 容器内的 findings.md。
- 视觉回归:在关键交互前后截图,文件名遵循 <step-id>.png 规则。
- 无障碍快照:在导航边界快照无障碍树。
- 会话收尾:以 trajectory-end --verdict pass|fail 结束,执行 rvf compact,并在 browser-sessions 中建立 AgentDB 索引。
- 可选对比:通过 --against <prior-session-id> 调用 browser-screenshot-diff,将新一轮运行与基线进行比较。
- 导航操作:browser_back / browser_forward 用于历史导航,browser_reload 刷新页面,browser_scroll 滚动到元素或坐标。
使用方式
测试流程按以下步骤组织:首先录制测试运行(组合 browser-record,分配 RVF 容器,启动 ruvector 轨迹);然后驱动交互并等待元素/网络空闲;接着执行验证,结果写入 findings.md;在关键交互前后截图;在导航边界快照无障碍树;最后通过 trajectory-end 给出判定并完成会话收尾。可选地,使用 --against 参数与既有基线会话做截图对比。
相较 v0.1.0 的变化
该技能不再仅以 browser_close 结束,而是以会话结束协议结束。测试期间发现的定位器会存入 browser-selectors(host:intent),以便下一次测试可通过嵌入相似度找到它们。验证输出在生成任何面向大模型的汇总前,都要先通过 aidefence_is_safe;被标记为注入风险的内容会被隔离到 findings.md。同一个技能在 CI 中运行时,现在会产出可由 /ruflo-browser replay 重新驱动的产物。
提示
在断言前使用 browser_wait 处理异步渲染。用于视觉回归时,保存父会话 id,并在下一次运行时传入 --against <id>。可用 browser_eval 编写自定义 JavaScript 断言,但在记录前需将返回的字符串通过 aidefence_is_safe 网关进行脱敏处理。
限制
暂未提供关于该技能的价格、收费模式、支持的浏览器种类、安装命令或平台兼容性的明确信息。