报告 · Reports
每次 DSL 测试完成后,Tapilot 生成一个报告包(report pack)。
目录结构
tests/reports/2026-04-24T12-34-56/my-login-test/
├── run.md # 人读的 step-by-step Markdown
├── summary.json # 结构化结果(CI 解析)
├── screenshots/
│ ├── 01-launch.png
│ ├── 02-after-login.png
│ └── ... # 每步 + 断言失败自动截
├── recording.mp4 # 完整屏幕录制(Android/iOS)
├── logcat.txt # Android logcat / iOS syslog
└── artifacts/ # OCR 结果 / 视觉断言原文 / metricsrun.md 长啥样
markdown
# my-login-test
- id: my-login-test
- platform: both
- solver: dsl
- duration: 12.4s
- result: ✅ PASS
## Steps
| # | Action | Args | Result | Time |
|---|---|---|---|---|
| 1 | openBrowser | {url, headless:true} | browser opened | 3.2s |
| 2 | webType | {selector, text} | typed | 180ms |
| 3 | webAssert | {selector:".dashboard", visible:true} | pass | 45ms |
summary.json(CI 解析)
json
{
"id": "my-login-test",
"result": "pass",
"duration_ms": 12400,
"steps": 15,
"steps_passed": 15,
"steps_failed": 0,
"screenshots": 7,
"artifacts": ["logcat.txt", "recording.mp4"]
}云上传
报告可以上传到 app.tapilot.dev/reports/upload(需要项目 API key),之后在 Admin UI 查看:
bash
curl -X POST https://app.tapilot.dev/api/reports/upload \
-H "Authorization: Bearer $TAPILOT_TOKEN" \
-F "pack=@tests/reports/latest.tar.gz"桌面 App 打开
bash
pnpm -C apps/desktop tauri dev
# History 页 → 选你的 run → 三栏视图(timeline + screenshot + logs)保留策略
默认保留 30 天 或 100 次 run(先到的先删),可改 .env.local:
bash
REPORT_MAX_DAYS=90
REPORT_MAX_RUNS=500