项目简介

QA MCP项目提供了一个基于AI的代理,旨在通过**Model Context Protocol (MCP)**简化Web测试工作流程。它通过MCP协议与支持的AI编程助手(如GitHub Copilot, Cursor等)集成,允许开发者使用自然语言自动化执行测试录制、回放和发现任务。这解决了手动测试耗时且易错的问题,特别是在使用AI生成代码后进行回归测试时。

主要功能点

  • MCP集成: 无缝对接支持MCP的AI编程助手。
  • AI辅助测试录制: 根据自然语言描述自动生成Playwright测试脚本(JSON格式)。
  • 确定性测试执行: 可靠地回放之前录制的测试脚本进行回归测试。
  • AI驱动的测试发现: 爬取网站并利用LLM分析页面,为发现的页面生成潜在的测试步骤建议。
  • 自动化反馈: 测试执行结果(包括失败信息、截图、控制台日志)会返回给AI助手。
  • 基于Playwright: 利用强大的Playwright库进行浏览器自动化。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Ilikepizza2/QA-MCP.git
    cd QA-MCP
  2. 创建并激活虚拟环境 (推荐):
    python -m venv venv
    source venv/bin/activate # Linux/macOS
    # venv\Scripts\activate # Windows
  3. 安装Python依赖:
    pip install -r requirements.txt
  4. 安装Playwright浏览器:
    playwright install --with-deps # 安装浏览器及其操作系统依赖
  5. 配置LLM API密钥:
    • 复制项目根目录下的 '.env.example' 文件并重命名为 '.env'。
    • 编辑 '.env' 文件,添加你的LLM API密钥(例如Google Gemini或兼容OpenAI的API):
      # .env
      LLM_API_KEY="YOUR_LLM_API_KEY"
      # 如果使用兼容OpenAI的API,可能还需要配置以下项(具体取决于你的LLM服务)
      # LLM_BASE_URL="YOUR_LLM_ENDPOINT_URL"
      # LLM_MODEL="your-chat-model-name"
      # LLM_TIMEOUT="60" # Optional timeout in seconds
    • 将 'YOUR_LLM_API_KEY' 替换为你的实际API密钥。

服务器配置 (MCP客户端使用)

要将此MCP服务器与你的MCP客户端(如AI编程助手)连接,你需要将以下配置添加到MCP客户端的配置文件中(通常是位于用户主目录下的 '.mcp/config.json' 或类似路径)。

请根据你的实际仓库路径和AI编程助手的MCP配置要求,配置服务器启动命令。以下是一个示例JSON片段,你需要将其合并到你的MCP客户端配置的 'mcpServers' 部分:

{
  // ... 其他MCP客户端配置内容 ...
  "mcpServers": {
    // ... 其他已配置的服务器 ...
    "Web-QA": { // <-- 这个是服务器的名称,客户端将以此名称引用它
      "command": "uv", // <-- 启动Python应用进程的命令,通常使用uv或python
      "args": [ // <-- 传递给command的参数列表
        "--directory", // uv/python用于指定工作目录
        "path/to/cloned_repo", // <-- !!! 将此处替换为你克隆的QA-MCP仓库的实际路径 !!!
        "run", // uv的运行命令
        "mcp_server.py" // <-- 要运行的MCP服务器脚本
      ],
      // "transport": "stdio" // 大多数MCP客户端默认使用stdio传输协议
    }
  }
  // ... 其他MCP客户端配置内容 ...
}

配置完成后,确保你的AI编程助手能够找到并加载此配置。启动AI编程助手后,它应该能够发现并连接到"Web-QA" MCP服务器。该服务器需要保持运行状态(通常由MCP客户端自动启动和管理)。

基本使用方法

通过支持MCP协议的AI编程助手的聊天界面或命令功能与代理交互。使用自然语言描述你想要执行的Web测试任务。

示例:

  • 录制测试:

    "录制一个测试:前往 https://practicetestautomation.com/practice-test-login/,在用户名输入框输入'student',在密码输入框输入'Password123',点击提交按钮,并验证文本'Congratulations student'可见。"

    • (代理会根据你的描述自动执行这些步骤并生成 'test_....json' 文件保存在 'output/' 目录下)
  • 执行测试:

    "运行回归测试 'output/test_practice_test_login_20231105_103000.json'"

    • (代理会执行指定JSON文件中的步骤,并报告测试状态 PASS/FAIL 及详细信息)
  • 发现测试步骤:

    "从 https://practicetestautomation.com/practice/ 开始,发现潜在的测试步骤"

    • (代理会爬取该网站,分析页面,并返回每个页面的测试步骤建议)
  • 列出已录制测试:

    "列出所有已录制的Web测试文件"

    • (代理会返回 'output/' 目录下所有 '.json' 测试文件的列表)

输出

  • 录制测试: 生成的测试脚本保存为JSON文件在 'output/' 目录下。
  • 执行结果: 测试执行的详细结果会以结构化格式(通常是JSON)返回给AI助手,并通常会保存到 'output/' 目录下(例如 'execution_result_....json')。
  • 发现结果: 发现的URL和测试步骤建议会返回给AI助手,并保存到 'output/' 目录下(例如 'discovery_results_....json')。

信息

分类

开发者工具