web-qa-bot 是一个基于无障碍树(accessibility-tree)的 AI 网页应用 QA 自动化技能。它使用浏览器无障碍树来进行可靠的元素检测,而不是脆弱的 CSS 选择器。
【用途】 本技能为 Web 应用提供自动化 QA 测试工具,覆盖冒烟测试、测试套件运行和报告生成等环节,可用于部署前检查、生产环境健康检查和回归监控。
【安装】 npm install -g web-qa-bot agent-browser agent-browser install
【主要能力】
快速冒烟测试: web-qa-bot smoke https://example.com 执行基础健康检查,包括:页面成功加载、无控制台错误、导航元素存在、图片具有 alt 文本。
运行测试套件: web-qa-bot run ./tests/suite.yaml --output report.md
生成 PDF 报告: web-qa-bot report ./results.json -o report.pdf -f pdf
支持的报告格式:
- Markdown:默认格式,便于人工阅读
- PDF:通过 ai-pdf-builder 生成的专业报告
- JSON:面向 CI/CD 的机器可读格式
【使用方式】
-
快速站点健康检查: web-qa-bot smoke https://app.example.com --checks pageLoad,consoleErrors,navigation
-
部署前 QA:创建测试套件并在每次部署前运行。示例 tests/critical-paths.yaml: name: Critical Paths baseUrl: https://staging.example.com tests:
- name: Login flow
steps:
- goto: /login
- type: { ref: Email, text: test@example.com }
- type: { ref: Password, text: testpass }
- click: Sign In
- expectVisible: Dashboard
- expectNoErrors: true 运行:web-qa-bot run ./tests/critical-paths.yaml --output qa-report.pdf -f pdf
-
回归监控: web-qa-bot run ./tests/smoke.yaml || exit 1
-
编程式测试: import { QABot } from 'web-qa-bot' const qa = new QABot({ baseUrl: 'https://example.com', headless: true }) await qa.goto('/') await qa.click('Get Started') await qa.snapshot() qa.expectVisible('Sign Up') await qa.close()
【与 agent-browser 集成】 该工具封装 agent-browser CLI 进行浏览器自动化: 连接现有浏览器会话:web-qa-bot smoke https://example.com --cdp 18800 带界面运行以便调试:web-qa-bot run ./tests/suite.yaml --no-headless
【测试结果格式】 结果以结构化 JSON 返回,包含 name、url、summary(total/passed/failed/warnings)和 tests 数组(含 name、status、duration)。
【使用提示】使用基于角色的选择器比 CSS 类更可靠;检查控制台错误常能发现隐藏问题;同时测试直接 URL 和应用内路由两种导航方式;测试套件在失败时自动截图;注意可能阻塞交互的模态框。
【故障排查】
- "agent-browser not found":运行 npm install -g agent-browser 和 agent-browser install
- "Element not found":先运行 agent-browser snapshot 查看可用 refs
- "Timeout waiting for element":增加超时时间或检查元素是否处于加载状态,可使用 waitMs、waitFor 等步骤等待
【适用场景】 快速站点健康检查、部署前 QA、回归监控、编程式测试。