用途:发现 E2E 测试场景、将其录制为 YAML,或执行已有测试用例。核心原则是使用语义选择器(基于无障碍属性,如 role 与 name),而非易碎的 testId 或 CSS 类,因为前者更贴近用户所见、更稳定。
主要能力: 一、风险驱动的场景发现。优先关注高风险区域:多字段表单、多步骤流程、认证边界、外部集成、数据变更。从风险而非代码结构出发,用代码、文档、浏览器多来源交叉验证,达到确信即停止。 二、录制测试用例。采用快照-引用模式:先 agent-browser open http://localhost:3000 --headed 打开页面,再 agent-browser snapshot --json 获取元素引用,随后用引用交互,如 agent-browser fill @e1 "test@example.com"、agent-browser click @e2。DOM 变化后引用会被重新分配,必须重新快照。录制时保存语义选择器而非引用,例如 {{role: textbox, name: "Email"}},并加入 expect 断言。 三、组织测试用例。按复杂度梯度分为 foundations(原子操作)、flows(完整用户旅程)、compositions(多会话/多用户场景)。判断标准:能否拆成更小的独立测试,能则为 flow 或 composition,不能则为 foundation。 四、执行测试用例。YAML 描述意图与约束,由代理补全执行细节。每步执行快照、匹配选择器、执行、验证 expect;optional: true 的步骤在元素不存在时跳过并记录决策;失败时报告未匹配的选择器及实际发现。支持条件步骤、数据提取(extract 配合 pattern 与 save_as)以及多会话(sessions 定义 alice、bob 等持久会话)。完成后关闭浏览器。
YAML 最小结构包含 id、title、category(foundation/flow/composition)、description、parameters、steps(含 desc、commands、expect、optional)与 exploration.status(draft/explored/validated)。
适用场景:Web 应用的端到端测试探索、录制与回归执行,尤其适合表单、向导、登录权限、支付集成、增删改等高风险流程。
限制与常见问题:空快照可能因页面未加载或缺少无障碍支持;引用变化属正常,交互前需重新快照;多匹配可用 index 指定;静态路由可能需加 .html;公共站点可能触发 429 限流,可加等待、使用已认证会话或在本地开发实例录制。完整规范见 FORMATS.md。