VibeCheck

查看源码
2025-5-12
Words 1822Read Time 5 min
Score:85

VibeCheck是一个基于MCP协议的Web测试工具,通过AI辅助自动化测试流程,支持测试录制、执行和发现。

Python

VibeCheck Web 测试工具

本项目提供了一个由 AI 驱动的代理,旨在简化 Web 测试工作流程,特别是为使用 AI 编码助手(如 GitHub Copilot、Cursor、Roo Code 等)的开发者设计。它通过 MCP(Machine Command Protocol) 直接集成到这些助手中,允许您使用自然语言提示自动化测试的录制、执行和发现。
问题背景: 在使用 AI 助手生成代码后,手动测试 Web 应用程序既耗时又容易出错。此外,AI 驱动的代码更改可能会无意中引入回归问题,影响之前正常工作的功能。
解决方案: 本工具通过以下功能,帮助您的 AI 编码助手弥合这一差距:
  1. 录制新的测试流程: 用自然语言描述用户操作流程,代理将在 AI 指导下与浏览器(使用 Playwright)交互,生成可重复执行的测试脚本(JSON 格式)。
  1. 执行现有测试: 运行之前录制的测试脚本,进行回归测试,确保新代码更改没有破坏现有功能。
  1. 发现潜在的测试步骤: 爬取网站,通过视觉和 DOM 结构分析页面,并利用 LLM 为不同页面建议相关的测试步骤。
这形成了一个更紧密的反馈循环,自动化了测试过程,使 AI 助手(和开发者)能够快速识别和修复问题或回归。

演示

功能

  • MCP 集成: 无缝集成 Cursor/Windsurf/Github Copilot/Roo Code。
  • AI 辅助测试录制: 通过自然语言描述生成基于 Playwright 的测试脚本(自动化模式)。
  • 确定性测试执行: 使用 Playwright 可靠地运行录制的 JSON 测试文件。
  • AI 驱动的测试发现: 爬取网站并利用任何 LLM(符合 OpenAI 格式)为发现的页面建议测试步骤。
  • 回归测试: 轻松运行现有测试套件以捕获回归问题。
  • 自动化反馈循环: 执行结果(包括失败、截图、控制台日志)会返回,直接反馈给 AI 助手。
  • 自我修复: 现有测试在代码更改时会自动修复,无需手动更新。
  • UI 测试: 支持 Playwright 无法直接处理的 UI 测试。例如,检查 div 中的文本是否溢出
  • 视觉回归测试: 结合传统的 pixelmatch 和视觉 LLM 方法。

工作原理

  1. 用户: 向 AI 编码助手发出提示(例如,“录制登录流程的测试”,“运行回归测试 'test_login.json'")。
  1. AI 编码助手: 识别意图并使用 MCP 调用 MCP Server 提供的相应工具。
  1. MCP 服务器: 将请求路由到对应的函数(record_test_flowrun_regression_testdiscover_test_flowslist_recorded_tests)。
  1. Web 测试代理:
      • 录制: WebAgent(自动化模式)与 LLM 交互以规划步骤,通过 BrowserController(Playwright)控制浏览器,处理 HTML/视觉信息,并将生成的测试步骤保存到 output/ 目录下的 JSON 文件中。
      • 执行: TestExecutor 加载指定的 JSON 测试文件,使用 BrowserController 根据录制的步骤与浏览器交互,并捕获结果、截图和控制台日志。
      • 发现: CrawlerAgent 使用 BrowserControllerLLMClient 爬取页面并建议测试步骤。
  1. 浏览器: Playwright 驱动实际的浏览器交互。
  1. 反馈: 结果(成功/失败、文件路径、错误信息、发现的步骤)通过 MCP 服务器返回给 AI 编码助手,然后呈现给用户。

快速开始

先决条件

  • Python 3.10+
  • 访问任何 LLM(测试中 Gemini 2.0 flash 效果最佳且免费)。
  • 安装 MCP(pip install mcp[cli])。
  • 安装 Playwright 浏览器(playwright install)。

安装

  1. 克隆仓库:
    1. 创建虚拟环境(推荐):
      1. 安装依赖:
        1. 安装 Playwright 浏览器:

          配置

          1. 将项目根目录下的 .env.example 文件重命名为 .env
          1. 添加您的 LLM API 密钥和其他必要信息:
              • YOUR_LLM_API_KEY 替换为您的实际密钥。

          添加 MCP 服务器

          在您的 MCP 配置中添加以下内容:
          在您与 AI 编码助手交互时,请保持此服务器运行。

          使用

          通过支持 MCP 的 AI 编码助手使用自然语言与代理交互。
          示例:
          • 执行测试:
            • "运行回归测试 output/test_practice_test_login_20231105_103000.json"
            • (代理将执行指定文件中的步骤,并报告 PASS/FAIL 状态及错误详情。)
          • 列出录制的测试:
            • "列出可用的录制 Web 测试。"
            • (代理将返回 output/ 目录中找到的 .json 文件列表。)
          输出:
          • 录制的测试: 以 JSON 文件形式保存在 output/ 目录中(格式见 test_schema.md)。
          • 执行结果: 以 JSON 对象形式返回运行摘要(状态、错误、证据路径)。完整结果也会保存到 output/execution_result_....json
          • 发现结果: 以 JSON 对象形式返回发现的 URL 和建议的步骤。完整结果保存到 output/discovery_results_....json

          灵感来源

          • Browser Use:DOM 上下文树的生成部分大量借鉴了他们的工作,并进行了修改以支持静态/动态/视觉元素。特别感谢他们对开源社区的贡献。

          贡献

          欢迎贡献!请参阅 CONTRIBUTING.md 了解如何开始、报告问题和提交拉取请求。

          许可证

          本项目基于 APACHE-2.0 许可证。
          上一篇
          dbhub
          下一篇
          netbox-mcp-server