项目简介
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库进行浏览器自动化。
安装步骤
- 克隆仓库:
git clone https://github.com/Ilikepizza2/QA-MCP.git cd QA-MCP - 创建并激活虚拟环境 (推荐):
python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows - 安装Python依赖:
pip install -r requirements.txt - 安装Playwright浏览器:
playwright install --with-deps # 安装浏览器及其操作系统依赖 - 配置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')。
信息
分类
开发者工具