用途:sg-record 是 ShipGuard 流水线中的人工录制入口,把人在浏览器里的操作捕获为可回放的 YAML 视觉测试清单。它与自动扫描代码生成测试的 sg-visual-discover 并列,两者输出同一 YAML 格式,后续 sg-visual-run、sg-visual-review、sg-visual-fix 无需改动。
主要能力:启动 Playwright Chromium 并在页面右下角注入浮动录制工具栏;自动记录点击、填写、回车、下拉选择、文件上传、页面跳转等操作;工具栏支持步骤列表、撤销、删除单步、暂停/继续、最小化、停止保存;Check 模式可把元素文本捕获为 assert_text 断言,文本超过 80 字符时改为 llm-check(severity warning,由 AI 在回放时判定),并在每个检查点自动截图。清单保存到 visual-tests/manifests/recorded-<name>.yaml,截图文件名带清单名前缀避免并行冲突。
使用方式:命令形式为 /sg-record <url>,支持 --name、--storage、--save-storage、--check-timeout 等参数,值参数可写 --name login-flow 或 --name=login-flow;/sg-record --check 检查 Playwright、Chromium 与有头浏览器启动前提。底层脚本为 node visual-tests/sg-record.mjs <url> [--name <name>] [--storage <auth.json>]。首次使用需把插件中的录制器文件复制到项目 visual-tests/ 目录,并安装依赖:npm install --save-dev playwright 与 npx playwright install chromium。
适用场景:需要以演示方式捕获用户流程并生成可回放视觉测试时;已有登录态可用 --storage auth.json 跳过登录,首次可用 --save-storage auth.json 保存登录态。
限制:Playwright 打开的是全新 Chromium,默认未登录;未使用 --storage 时需手动登录,清单 requires_auth 为 false,使用 --storage 时为 true,回放前会先执行 _shared/login.yaml。新标签页与弹窗尽力注入工具栏,注入完成前关闭的弹窗(如即时 OAuth 跳转窗口)不会记录。上传步骤只生成 {data.*} 占位与 data 存根,必须指向真实项目相对路径文件。非 TTY 环境必须传 --name,否则拒绝启动;代理驱动运行需后台执行。沙箱中 Playwright/浏览器套接字与依赖安装可能需要显式授权。