# test_case **Repository Path**: jiuzhangyabian/test_case ## Basic Information - **Project Name**: test_case - **Description**: 通过调用AI工作流,自动生成测试用例。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-22 - **Last Updated**: 2026-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: AI用例生成 ## README # AI 测试用例生成系统 基于通义千问(Qwen-VL-Plus)多模态AI技术,支持图像、PDF、Word、OpenAPI等多种输入格式,智能生成高质量测试用例,助力企业测试效率提升。 ## 项目结构 ``` testcase_generator ├── backend/ # FastAPI后端服务 │ ├── main.py # 主应用入口 │ ├── requirements.txt # Python依赖 │ ├── routers/ # API路由 │ ├── services/ # 业务逻辑服务 │ │ ├── ai_service.py # AI生成服务(核心) │ │ ├── pdf_service.py # PDF解析 │ │ ├── docx_service.py # Word解析 │ │ ├── openapi_service.py # OpenAPI解析 │ │ ├── excel_service.py # Excel导出 │ │ ├── xmind_service.py # 思维导图导出 │ │ └── session_service.py # 会话管理 │ ├── models/ # 数据模型 │ ├── utils/ # 工具函数 │ ├── logs/ # 日志存储 │ ├── uploads/ # 上传文件存储 │ └── results/ # 生成结果存储 └── frontend/ # React前端应用 ├── package.json # Node.js依赖 ├── src/ # 源代码 └── public/ # 静态资源 ``` ## 技术栈 ### 后端 - **框架**: FastAPI (异步 Web 框架) - **运行时**: Python 3.11+ - **Web服务器**: Uvicorn - **核心依赖**: - FastAPI - RESTful API框架 - Uvicorn - ASGI服务器 - AutoGen - AI代理框架 - pdfplumber/PyPDF2 - PDF解析 - python-docx - Word解析 - openpyxl - Excel生成 - pandas - 数据处理 - redis - 会话存储 - chromadb - 向量存储(已禁用) ### 前端 - **框架**: React 18 (函数式组件 + Hooks) - **UI库**: Material-UI 5 (Material Design组件库) - **构建工具**: Create React App - **主要依赖**: - React - 前端框架 - Material-UI - UI组件库 - Axios - HTTP客户端 - React Dropzone - 文件上传 - React Markdown - Markdown渲染 - Markmap - 思维导图可视化 ### AI 模型 - **生成模型**: 通义千问 (Qwen-VL-Plus) - 多模态大语言模型 - **API接口**: DashScope OpenAI-compatible API ## 核心功能特性 ### ✅ 已实现功能 1. **多格式文档解析** - 图像: PNG, JPG, JPEG, GIF, BMP, WebP (通过 Qwen-VL-Plus 多模态能力) - PDF: pdfplumber + PyPDF2 双重解析,支持表格提取 - Word: python-docx 解析,保留格式信息 - OpenAPI: JSON/YAML 解析,自动生成接口测试用例 2. **测试用例生成** - 单文件生成:流式输出,实时展示生成过程 - 多文件生成:并行处理,支持最多3个并发 - 测试用例补充:基于现有用例智能补充,去重处理 - 思维导图生成:将测试用例转换为 Markdown 思维导图 3. **流式响应架构** - Server-Sent Events (SSE) 实时流传输 - 前端实时展示生成内容,无需等待完全完成 - 支持任务取消机制 4. **会话管理** - 基于 Redis 的会话存储,支持多轮对话 - 对话历史持久化 - 用例修改历史追踪 5. **导出功能** - Excel 导出: 支持同步和异步导出 - 思维导图导出: Markdown 格式 - MinIO 文件存储(可选) 6. **错误处理与稳定性** - SafeOpenAIChatCompletionClient 包装器处理 autogen 库的使用情况计算 bug - 多层超时保护 (30-180s 文件级,300s 全局) - 15秒心跳保持连接稳定 - 完善的异常捕获和降级处理 ### ❌ 已禁用的功能 - ~~RAG 检索增强 (ChromaDB 向量检索)~~ - 已完全禁用,改用直接 LLM 提示 - ~~向量嵌入 (multimodal-embedding-v1)~~ - 已禁用 - ~~重排序模型 (qwen3-rerank)~~ - 已禁用 - ~~DeepSeek 模型支持~~ - 仅支持 Qwen-VL-Plus ## 安装和启动 ### 环境要求 - Python 3.11 或更高版本 - Node.js 18 或更高版本 - npm 或 yarn ### 必要配置 1. **阿里云 DashScope API Key** - 访问 https://bailian.console.aliyun.com/ - 注册账户并获取 API Key - 在 `backend/utils/llms.py` 中配置: ```python DASHSCOPE_API_KEY = "your-api-key-here" ``` ### 后端启动 4. **启动后端服务** ```bash python main.py ``` 或使用uvicorn: ```bash uvicorn main:app --host 0.0.0.0 --port 8000 --reload ``` 5. **验证后端启动** - API 文档:http://localhost:8000/docs - 健康检查:http://localhost:8000/api/ping ### 前端启动 1. **进入前端目录** ```bash cd frontend ``` 2. **安装依赖** ```bash npm install ``` 或使用yarn: ```bash yarn install ``` 3. **启动前端开发服务器** ```bash npm start ``` 4. **访问应用** - 前端应用:http://localhost:3000 - 后端 API:http://localhost:8000 - API 文档:http://localhost:8000/docs ## 开发模式 ### 同时启动前后端 1. **启动后端**(终端1) ```bash cd backend python main.py ``` 2. **启动前端**(终端2) ```bash cd frontend npm start ``` ## 主要 API 接口 ### 测试用例生成 - `POST /api/test-cases/generate` - 从上传文件生成测试用例(流式响应) - `POST /api/test-cases/supplement` - 补充现有测试用例(流式响应) - `POST /api/test-cases/cancel` - 取消正在执行的生成任务 ### 思维导图 - `POST /api/test-cases/generate-mindmap` - 从测试用例生成思维导图 - `POST /api/test-cases/export-mindmap-md` - 导出思维导图为 Markdown ### 导出功能 - `POST /api/test-cases/export` - 同步导出 Excel 格式 - `POST /api/test-cases/export-async` - 异步导出 Excel(大数据集) - `GET /api/test-cases/export-status/{task_id}` - 查询导出任务状态 - `GET /api/test-cases/export-download/{task_id}` - 下载导出的 Excel 文件 ### 系统接口 - `GET /api/ping` - 健康检查 ## 生产部署 ### Docker Compose 部署(推荐) 1. **配置环境变量** 复制 `.env.example` 为 `.env` 并配置 DashScope API Key: ```bash cp env.example .env # 编辑 .env 并设置你的 API Key DASHSCOPE_API_KEY=your-api-key ``` 2. **启动服务** ```bash docker compose up -d ``` 3. **访问系统** - 前端界面:http://localhost:3100 - 后端 API:http://localhost:8000 - API 文档:http://localhost:8000/docs ### 后端直接部署 ```bash cd backend pip install -r requirements.txt python main.py ``` ### 前端生产构建 ```bash cd frontend npm run build # 将 build 目录部署到 Web 服务器 ``` ## 故障排除 ### 常见问题 1. **后端启动失败** - 检查 Python 版本是否为 3.11+ - 检查 DashScope API Key 是否正确配置 - 检查端口 8000 是否被占用 2. **API 请求失败** - 确保后端服务正在运行 - 检查 DashScope API Key 是否有效 - 查看后端日志:`backend/logs/app.log.*` 3. **生成超时** - 检查网络连接 - 大文件请使用异步导出功能 - 查看是否有多个并行任务 4. **前端无法连接后端** - 检查后端服务是否启动 - 检查防火墙设置 - 查看浏览器控制台错误信息 ## 项目亮点 ### 技术创新 1. **SafeOpenAIChatCompletionClient 错误处理** - 处理 autogen 库与 DashScope API 之间的不兼容性 - 智能重试机制:正常尝试 → 重置使用情况 → 禁用使用情况统计 - 确保生成过程稳定完成 2. **多层超时保护** - 文件级超时:30-180 秒 - 全局超时:300 秒 - 心跳机制:15 秒间隔保持连接 3. **流式响应架构** - Server-Sent Events (SSE) 实时传输 - 前端实时展示生成过程,无需等待完成 - 支持任务取消机制 4. **并行处理能力** - 支持最多 3 个文件并行处理 - 减少总生成时间 50%+ ## 文档 - [关键技术文档](./关键技术文档.md) - 详细的技术实现细节 - [系统架构文档](./系统架构文档.md) - 系统架构设计和数据流 - [项目简历内容](./项目简历内容.md) - 项目简介和面试资料 ## 许可证 本项目采用 MIT 许可证。