AITestCase
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"filesystem": {
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"f:\\\\AI软件\\\\AI生成测试用例\\\\AITestCase_demo2"
],
"command": "npx",
"env": {}
}
}
}
该服务需要配置环境变量:.env
服务介绍
AI测试用例生成系统 - MCP架构版本
🎯 项目简介
本项目是基于 Model Context Protocol (MCP) 架构开发的 AI 测试用例生成系统。通过标准化的工具接口与 DeepSeek AI 模型交互,实现智能化的测试用例生成。
🆕 MCP 架构优势
什么是 MCP?
Model Context Protocol (模型上下文协议) 是一个标准化的协议,用于连接 AI 应用与外部工具和数据源。
主要特点
- ✅ 标准化接口: 统一的工具调用规范
- ✅ 类型安全: 强类型参数验证
- ✅ 可扩展性: 轻松添加新工具
- ✅ 错误处理: 统一的异常处理机制
- ✅ 可维护性: 清晰的代码结构
📦 安装依赖
方式1: 使用 MCP 专用依赖
pip install -r requirements_mcp.txt
方式2: 安装核心 MCP 包
pip install mcp aiohttp streamlit pandas openpyxl pillow pytesseract
🚀 快速开始
1. 配置环境变量
在项目根目录创建 .env 文件:
DEEPSEEK_API_KEY=your_api_key_here
2. 启动 MCP 版本应用
streamlit run app_mcp.py
或使用启动脚本:
python run_mcp.py
3. 使用原始版本(对比)
streamlit run app.py
🏗️ MCP 架构说明
核心组件
1. llms_mcp.py - MCP LLM 接口层
MCPToolExecutor: 工具执行器类call_deepseek_api_mcp(): 支持工具调用的 API 接口MCP_TOOLS: 工具定义列表
2. utils_mcp.py - MCP 工具实现层
generate_test_cases_mcp(): 测试用例生成工具init_vector_db(): 向量数据库初始化ocr_image(): OCR 识别工具
3. app_mcp.py - MCP 应用层
- Streamlit 界面
- MCP 工具调用集成
- 结果展示和导出
MCP 工具列表
| 工具名称 | 功能描述 | 参数 |
|---|---|---|
generate_test_cases |
生成测试用例 | requirement_text, test_level, test_priority, test_case_count |
parse_document |
解析文档内容 | content, query |
ocr_image_text |
OCR图片识别 | image_path |
📊 MCP vs 原始版本对比
| 特性 | 原始版本 | MCP版本 |
|---|---|---|
| API调用方式 | 直接HTTP请求 | 标准化工具接口 |
| 参数验证 | 手动验证 | Schema自动验证 |
| 错误处理 | 分散处理 | 统一处理机制 |
| 代码可维护性 | 中等 | 高 |
| 扩展性 | 需要修改多处 | 只需添加工具定义 |
| 类型安全 | 弱类型 | 强类型 |
🔧 配置说明
Tesseract OCR 路径配置
在 utils_mcp.py 中配置 Tesseract 安装路径:
tesseract_paths = [
r"F:\AI软件\AI生成测试用例\Tesseract-OCR\Tesseract-OCR\tesseract.exe",
r"C:\Program Files\Tesseract-OCR\tesseract.exe",
# 添加您的路径
]
向量数据库路径配置
VECTOR_DB_PATH = r"D:\python\PythonProject\vector_db2"
KNOWLEDGE_DIR = r"D:\python\PythonProject\data2"
嵌入模型配置
支持本地模型和在线模型自动切换:
local_model_paths = [
r"D:\python\models\paraphrase-multilingual-MiniLM-L12-v2",
r"F:\AI软件\AI生成测试用例\local_models\all-MiniLM-L6-v2",
# 添加您的本地模型路径
]
📝 使用示例
1. 手动输入需求
用户登录功能:
- 支持手机号+密码登录
- 错误三次锁定账户
- 支持记住密码功能
2. 上传需求文档
支持 .txt 和 .md 格式的需求文档,系统会自动向量化并支持语义检索。
3. 上传图片
支持 OCR 识别图片中的需求文本,支持中英文混合识别。
🎨 功能特性
✨ 智能测试用例生成
- 自动识别功能点
- 覆盖边界值测试
- 异常流程测试
- 正向场景测试
📤 多格式导出
- JSON 格式
- Excel 表格
- Markdown 文档
🔍 语义检索
- 向量化需求文档
- 智能召回相关内容
- 精准匹配需求点
🛠️ 开发指南
添加新的 MCP 工具
- 在
llms_mcp.py的MCP_TOOLS列表中添加工具定义:
{
"type": "function",
"function": {
"name": "your_tool_name",
"description": "工具描述",
"parameters": {
"type": "object",
"properties": {
"param1": {
"type": "string",
"description": "参数描述"
}
},
"required": ["param1"]
}
}
}
- 在
MCPToolExecutor类中实现工具逻辑:
@staticmethod
async def _your_tool_name(param1: str) -> Any:
"""工具实现"""
# 您的逻辑代码
pass
- 在
execute_tool方法中注册工具:
if tool_name == "your_tool_name":
return await MCPToolExecutor._your_tool_name(**arguments)
🐛 常见问题
Q1: MCP 包安装失败怎么办?
A: 尝试使用国内镜像源:
pip install mcp -i https://pypi.tuna.tsinghua.edu.cn/simple
Q2: OCR 识别失败?
A: 请确保已安装 Tesseract OCR 并正确配置路径。
Q3: 向量数据库初始化失败?
A: 检查嵌入模型路径是否正确,或等待自动下载在线模型。
📄 License
MIT License
👥 贡献
欢迎提交 Issue 和 Pull Request!
📮 联系方式
如有问题,请通过 Issue 联系我们。
基于 Model Context Protocol 构建,让 AI 工具调用更加标准化和高效! 🚀