Web自动化测试
基于 agent-browser CLI + WSLg headed 模式的 AI 驱动 Web 自动化测试体系,用于 BNEF 活动管理平台(demo.dtask.net)的功能验证。
概述
Surface WSL Bot 在 2026-03-06 首次对 BNEF 活动管理平台进行全面的 Web 自动化测试。测试使用 agent-browser CLI 工具(Rust 实现的轻量级 Playwright wrapper),通过 WSLg headed 模式在 Windows 桌面上显示浏览器操作过程。
整个测试体系经历了从手动逐条执行到创建 web-testing skill 固化经验的完整演进过程。最终形成了 144 个测试用例覆盖管理端全部功能的测试计划。
测试工具链
| 组件 | 说明 |
|---|
| agent-browser | 浏览器自动化 CLI (v0.16.3),命令包括 open/snapshot/click/fill/wait 等 |
| WSLg | 在 Windows 桌面显示 headed Chrome 窗口 |
| Viewport | 桌面端 1707×960 (16:9);移动端 393×852 (iPhone 15 Pro) |
| 视觉模型 | gpt-5-mini / gpt-4o 用于截图分析 |
测试覆盖范围
demo.dtask.net 管理端
| 模块 | 用例数 | 通过率 | 状态 |
|---|
| 活动列表 (E-L) | 12 | 100% | ✅ 完成 |
| 活动详情 (E-D) | 20 | 89.5% | ✅ 完成 |
| 活动编辑 (E-E) | 12 | 100% | ✅ 完成 |
| 状态机 (E-S) | 8 | 100% | ✅ 完成 |
| 数据看板 | 8 | 87.5% | ⚠️ 部分 |
| 会员管理 | 10 | 50%→深测 | ✅ 深测完成 |
| 表单配置 | 12 | 58%→深测 | ✅ 深测完成 |
| 系统设置 | 24 | 部分 | ⚠️ 部分 |
| Banner 管理 | 8 | 完成 | ✅ |
| 管理员管理 | 10 | 完成 | ✅ |
| 操作日志 | 8 | 完成 | ✅ |
发现的 Bug
| Bug ID | 模块 | 严重度 | 描述 | 状态 |
|---|
| BUG-001 | 渠道码 | P2 | 渠道码无法编辑/删除 | ✅ Fixed |
| BUG-002 | 前端 | Low | 手机视口 /login 白屏 | ✅ Fixed |
| BUG-003 | 系统设置 | Low | 保存按钮无 Loading 状态 | ✅ Fixed |
| BUG-004 | Banner | Low | 图标按钮无 aria-label | Open |
关键经验教训
agent-browser 工具层面
- 用
fill 不用 type — type 追加文本,fill 清空再输入
open 命令不可靠 — 用 eval "window.location.href='url'" 更稳
- toast/弹窗先关再操作 — 先
press Escape 或点空白处
- 多命令串联易超时 — 拆成独立调用
- 图标按钮无 aria-label — 只能逐个点试功能
AI 测试方法论
- snapshot 必须读完整 — 不能 grep 预期关键词(“删除” 漏掉了 “移入回收站”)
- 每步截图留证 — screenshot 保存到 test-results/ 目录
- Bug 验证必须多次复现 — 避免误报(BUG-001 操作日志为空是误报)
- 严重程度看用户路径 — /login 白屏但用户走微信扫码不经过该页面
子代理测试的局限性
- 子代理适合第一轮冒烟扫描,主代理做第二轮深测
- 子代理不敢做破坏性操作(删除/封禁),不做完整闭环验证
- 子代理报告格式需约定(追加 vs 覆盖),否则结果被覆盖
测试产出文件
~/.openclaw/workspace/test-results/
├── report-events-list-2026-03-06.md
├── report-event-management-2026-03-06.md
├── report-admin-full-2026-03-06.md
├── report-admin-deep-2026-03-06.md
├── report-events-regression-2026-03-07.md
├── test-plan-admin-full.md
└── bugs.md
测试账户
相关页面