SuperAPI AI 工具集

browser-replay

测试与质量

查看项目

更新于 10-15 15:23

技能介绍

用途

Browser Replay 用于重新驱动一段已录制的会话轨迹。它适用于回归测试、确定性重跑,也作为验证路径,确认 browser-record 与 browser-selectors 实际能产出可重放的内容。

该技能是 v0.2.0 架构的关键假设。ADR-0001 验证第 4 节要求:在 10 个具有不同漂移特征的网站上达到不低于 80% 的重放成功率,提案才能从 Proposed 变为 Accepted。如果发现重放不可靠,需将失败模式记录到 findings.md 并上报给 ADR。

适用时机

  • 部署后对 UI 流程进行回归测试。
  • 复现先前会话中捕获的 bug。
  • 为 browser-screenshot-diff 比较同一流程的两次运行。
  • 分叉会话(/ruflo-browser fork)并在变更前重放父会话。

使用步骤

  1. 定位源会话:
npx -y ruvector@0.2.25 rvf status <session-id>.rvf
  1. 加载轨迹:读取 .../trajectory.ndjson。每一行的格式为 {ts, action, args, selector, result}。

  2. 通过 mcp__plugin_ruflo-core_ruflo__browser_open 打开全新浏览器(目标 URL 为原始 URL 或通过 --url 覆盖指定)。

  3. 对轨迹中的每一步,调度匹配的 MCP 工具(browser_click、browser_fill、browser_eval 等),并传入录制时的参数。

  4. 遇到选择器未命中时,不要立即失败——查询 browser-selectors 命名空间,为同一 <host>:<intent> 找到嵌入相似的候选选择器并重试一次:

npx -y @claude-flow/cli@latest memory search --namespace browser-selectors \
  --query "<host> <intent>" --limit 5
  1. 为本次重放运行记录新的轨迹(分配全新 RVF 容器,通过 rvf derive 追踪血缘)。

  2. 判定:统计 matched-step / total-step 比率。默认容差阈值为 0.85(可通过 --tolerance 配置)。判定结果写入 findings.md。

限制与注意事项

  • Browserbase 明确不提供重放功能(rrweb 会话重放已弃用)。本项目押注选择器嵌入恢复,在漂移严重的网站上预计会有噪声。
  • 网络不确定性(时序、内容变化)可能产生误判失败。可使用 --mutate 注入预期变化,或固定到 fixture。
  • 如需视觉差异对比,可对接 browser-screenshot-diff,对父会话 id 进行比较。
  • 如果某一步的选择器恢复需要超过一次重试,请记录下来。这表明该站点需要重新录制,而不是重放。