用途
Dogfood 用于系统化地探索一个 Web 应用、发现问题,并为每一项发现生成带完整复现证据的报告。它面向探索性测试与质量评审场景,帮助测试者像真实用户一样使用应用,并把可复现的问题连同证据一起交付给负责团队。
主要能力
- 系统化探索 Web 应用,覆盖主导航、各顶层区块、交互元素、边界情况与端到端流程。
- 发现功能缺陷、UX 问题、控制台错误、加载时可见的静态问题等。
- 为每个问题生成复现证据:交互/行为类问题提供复现视频与逐步截图;静态/加载即可见的问题提供单张带标注截图。
- 生成结构化报告,包含问题编号、严重程度统计与复现步骤。
- 支持登录认证、保存认证状态、指定输出目录与测试范围。
使用方式
仅需提供目标 URL,其余参数均有默认值。默认会话名为域名 slug 化结果,默认输出目录为 ./dogfood-output/,默认范围为整个应用,默认无认证。若用户说“dogfood vercel.com”之类,可直接使用默认值开始。
工作流程为:初始化(创建会话、输出目录、报告文件)→ 认证(如需要则登录并保存状态)→ 定位(导航到起点、初始快照)→ 探索(系统访问页面并测试功能)→ 记录(发现即截图/录屏并写入报告)→ 收尾(更新汇总计数、关闭会话)。
始终直接使用 agent-browser,不要用 npx agent-browser。直接二进制使用快速的 Rust 客户端,npx 会经过 Node.js,明显更慢。
初始化示例:
mkdir -p {OUTPUT_DIR}/screenshots {OUTPUT_DIR}/videos
cp {SKILL_DIR}/templates/dogfood-report-template.md {OUTPUT_DIR}/report.md
agent-browser --session {SESSION} open {TARGET_URL}
agent-browser --session {SESSION} wait --load networkidle
认证示例:
agent-browser --session {SESSION} snapshot -i
agent-browser --session {SESSION} fill @e1 "{EMAIL}"
agent-browser --session {SESSION} fill @e2 "{PASSWORD}"
agent-browser --session {SESSION} click @e3
agent-browser --session {SESSION} wait --load networkidle
agent-browser --session {SESSION} state save {OUTPUT_DIR}/auth-state.json
探索时在每个页面执行快照、带标注截图、检查错误与控制台:
agent-browser --session {SESSION} snapshot -i
agent-browser --session {SESSION} screenshot --annotate {OUTPUT_DIR}/screenshots/{page-name}.png
agent-browser --session {SESSION} errors
agent-browser --session {SESSION} console
交互/行为类问题的复现证据流程:先开始录屏,再以人类节奏逐步操作并截图,捕获损坏状态后停止录屏:
agent-browser --session {SESSION} record start {OUTPUT_DIR}/videos/issue-{NNN}-repro.webm
agent-browser --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-1.png
sleep 1
# 执行操作
sleep 1
agent-browser --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-2.png
sleep 2
agent-browser --session {SESSION} screenshot --annotate {OUTPUT_DIR}/screenshots/issue-{NNN}-result.png
agent-browser --session {SESSION} record stop
静态/加载即可见的问题只需一张带标注截图:
agent-browser --session {SESSION} screenshot --annotate {OUTPUT_DIR}/screenshots/issue-{NNN}.png
收尾时更新报告中的严重程度计数,关闭会话:
agent-browser --session {SESSION} close
适用场景
- 被要求对某个 Web 应用、网站或平台进行 dogfood、QA、探索性测试、查找问题、缺陷搜寻或质量评审。
- 需要把可复现的问题连同截图、视频和步骤交给负责团队。
- 需要覆盖核心功能、边界情况、错误处理与真实端到端流程的探索性测试。
限制与注意事项
- 目标 URL 为必填项,其余参数有默认值。
- 若提到认证但缺少凭据,需要向用户询问;OTP/邮箱验证码需等待用户提供后输入。
- 每个问题必须可复现,收集证据前应至少重试一次验证可复现性;无法稳定复现的不算有效问题。
- 静态问题不要录视频,交互问题才需要视频与逐步截图。
- 发现即写入报告,不要批量留到最后;不要删除输出文件,不要中途关闭并重启会话。
- 不要阅读被测应用的源代码,所有发现必须来自浏览器中观察到的现象。
- 目标为本地应用且未运行时,应先用仓库的 dev-server 技能启动;长运行服务器命令优先使用
bash({ run_in_background: true, monitor: ... })配合就绪/错误正则。 - 目标是找到 5-10 个记录充分的问题后收尾,证据深度比数量更重要。
- 填写表单录制视频时用
type而非fill,以逐字符输入;仅在非录屏且追求速度时用fill。 - 滚动使用
agent-browser --session {SESSION} scroll down 300,不要用key或evaluate。 - 参考文档
references/issue-taxonomy.md用于校准检查项、严重程度与探索清单;模板templates/dogfood-report-template.md复制到输出目录作为报告文件。