web-qa-bot

🧪 AI 驱动的网页自动化测试专家

基于可访问性树的 AI 网页 QA 工具,无需脆弱 CSS 选择器即可实现冒烟测试、可访问性检测与视觉回归,完美适配 Cursor/Claude 等 AI 编程工作流。

收藏
1.5k
安装
387
版本
v0.1.3
CLS 安全性认证2026-05-15
点击查看完整报告 >

使用说明

web-qa-bot 是一款面向现代 Web 开发的 AI 驱动 QA 自动化工具,通过命令行界面和程序化 API 提供完整的测试解决方案。其核心工作流围绕浏览器可访问性树(Accessibility Tree)构建,摒弃了传统 CSS 选择器定位方式,转而使用语义化角色和 ARIA 属性进行元素识别,大幅提升了测试脚本的稳定性和可维护性。用户可通过 web-qa-bot smoke 命令快速执行冒烟测试,或使用 YAML 配置文件定义复杂的端到端测试场景,支持登录流程、表单验证、页面导航等关键路径的自动化验证。工具原生支持 Markdown、PDF 和 JSON 三种报告格式,便于集成到 CI/CD 流水线或生成专业的 QA 文档。

该工具的显著优势在于其"无脆弱选择器"架构设计,有效解决了传统自动化测试因前端 DOM 结构变动导致的脚本失效问题。与 Cursor、Claude、GitHub Copilot 等 AI 编程助手的深度兼容性,使其成为"vibe-coding"工作流的理想伴侣。TypeScript 编写的核心代码提供了完整的类型定义,支持智能代码补全和编译时错误检查。此外,基于 agent-browser 的底层实现确保了跨浏览器兼容性和 headless/headed 模式的灵活切换,自动截图和 console 错误捕获功能进一步增强了调试体验。

然而,作为 0.1.3 版本的早期项目,web-qa-bot 仍存在一定局限性。其采用 peer dependency 模式要求用户手动安装 agent-browser 才能运行,增加了初始配置复杂度。PDF 报告生成功能依赖外部的 ai-pdf-builder 工具,若该工具未安装或版本不兼容将导致功能失效。作为 T3 来源的个人开发者项目,其长期维护稳定性和社区生态规模尚不及 Playwright、Cypress 等成熟框架,企业级用户可能需要评估供应链风险。

该技能特别适合前端开发者、QA 工程师和 DevOps 专家使用,尤其是采用 Cursor/Claude 进行 AI 辅助编程的团队。对于需要快速验证网站健康状态、监控可访问性合规性(WCAG)或建立轻量级 CI 测试流程的场景尤为适用。同时,追求测试脚本高稳定性、厌倦 CSS 选择器维护负担的技术团队将从其语义化定位策略中获得显著效率提升。

使用过程中的主要风险集中在执行环境安全方面。工具通过 execSync 调用外部 agent-browser CLI,虽为功能设计的必要手段,但需确保 Node.js 运行环境不受恶意代码污染。测试目标 URL 应严格限制为可信域,避免在测试不可信第三方网站时遭遇 XSS 或恶意重定向攻击。网络超时设置(默认 30 秒)在慢速环境或复杂单页应用中可能需要手动调整,否则可能导致假阴性结果。建议在容器化环境(如 Docker)中隔离运行测试任务,并遵循最小权限原则配置 CI 流水线权限。

安全解读

核心用法

web-qa-bot 是一款面向 Web 应用的 AI 驱动 QA 自动化工具,核心特色在于基于无障碍树(accessibility tree)进行元素定位,避免传统 CSS 选择器因页面重构而频繁失效的问题。安装后可通过 CLI 快速执行三类任务:

1. 快速冒烟测试web-qa-bot smoke <url> 一键检测页面加载、控制台错误、导航完整性及图片 alt 属性。
2. 自定义测试套件:以 YAML 描述测试流程(点击、输入、断言、等待),支持 run 命令批量执行并生成 Markdown/PDF/JSON 报告。

3. 程序化调用:提供 TypeScript SDK,可在 Node.js 脚本中嵌入 QA 流程,便于集成到 CI/CD 流水线。

工具底层依赖 agent-browser 实现浏览器自动化,支持无头/有头模式、CDP 远程调试及截图留存。

显著优点

  • 高鲁棒性定位:无障碍树 ref 比 CSS 选择器更稳定,适合频繁迭代的 "vibe-coding" 场景。
  • AI 工具链原生支持:设计初衷即与 Cursor、Claude、ChatGPT、Copilot 等 AI 编码助手协同,测试脚本可读性强,便于 AI 生成与维护。
  • 多格式报告:内置 Markdown 可读报告与 PDF 专业报告(ai-pdf-builder),满足技术团队与业务方的不同需求。
  • 轻量易上手:单条命令即可完成安装与冒烟测试,无需复杂配置。

潜在缺点与局限性

  • Node.js 生态绑定:仅支持 npm 安装,对纯 Python/Go 技术栈团队不够友好。
  • 外部依赖耦合:核心浏览器控制完全委托给 agent-browser,若后者出现兼容性问题或停更,将直接影响可用性。
  • 断言能力有限:当前以「可见性」「错误计数」为主,复杂业务逻辑断言(如数据一致性、跨页面状态)需自行扩展。
  • PDF 报告依赖额外包:PDF 输出需 ai-pdf-builder,可能引入额外依赖体积。

适合人群

  • 前端开发者:在 Cursor/Copilot 等 AI 编辑器中快速验证页面改动。
  • 全栈工程师/技术负责人:需要轻量、可脚本化的 E2E 方案,替代部分 Playwright/Puppeteer 场景。
  • 初创团队:无专职 QA 时,用冒烟测试守护核心路径。

常规风险

  • 子进程执行风险:使用 child_process.execSync 调用 agent-browser,虽经参数化处理,但若用户输入未严格校验,仍存在潜在命令注入面(安全报告已标记为 "false_positive_context")。
  • 依赖误报:yaml 包曾被误标为 typosquatting,虽为误报,但提示维护者需关注依赖审计噪音。
  • 文件系统操作:支持用户指定输出路径,若路径验证不足,理论上存在目录遍历风险(当前代码已使用 resolve(),建议进一步增强校验)。

web-qa-bot 内容

bin文件夹
src文件夹
utils文件夹
templates文件夹
手动下载zip · 33.3 kB
web-qa-bot.jstext/javascript
请选择文件