# AI-Agent **Repository Path**: elfbobo_admin_admin/ai-agent ## Basic Information - **Project Name**: AI-Agent - **Description**: 一个专注于智能代理开发的开源项目,支持多平台应用,涵盖自动化决策、数据分析等领域,旨在为开发者提供高效灵活的AI解决方案。 - **Primary Language**: Python - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-16 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能测试用例生成器 (ai-agent) 基于 Python 的智能测试用例生成工具,提供测试点生成和测试用例生成两条管线,结合 RAG 知识库与 LLM 实现高质量的自动化测试设计。 ## 核心功能 | 功能 | 描述 | |------|------| | RAG 知识库 | 集成外部 rag_knowledge_base 服务,支持混合检索 + CrossEncoder 重排序 | | 测试点生成管线 | 从需求文档提取测试域、约束规则,结构化生成测试点(Markdown) | | 测试用例生成管线 | 基于测试点 + RAG 知识库,每个测试点生成 3-8 个覆盖 4 类场景的测试用例 | | LLM 缓存 | DeepSeek prompt 缓存 + 本地磁盘缓存,大幅降低重复生成成本 | | 异步任务 | Celery + FastAPI 支持异步提交和查询任务状态 | | 多格式输出 | 支持 Excel(样式化)、Markdown、JSON 三种输出格式 | ## 项目结构 ``` ai-agent/ ├── src/ # 核心源代码 │ ├── main.py # CLI 主程序入口 │ ├── llm_integration.py # LLM 集成(DeepSeek / Ollama) │ ├── rag_knowledge_bridge.py # RAG 知识库 HTTP 客户端 │ ├── test_point_pipeline.py # 测试点生成管线(5 阶段) │ ├── test_case_pipeline.py # 测试用例生成管线(5 阶段) │ ├── md_parser.py # Markdown 解析器 │ ├── pdf_parser.py # PDF 解析模块 │ ├── output_formatter.py # 输出格式化(Excel/Markdown/JSON) │ ├── api_server.py # FastAPI 异步任务服务 │ ├── celery_worker.py # Celery Worker 入口 │ ├── tasks.py # Celery 异步任务定义 │ └── utils/ # 工具模块 ├── scripts/ # 工具脚本 ├── tests/ # 测试文件 ├── need_test_data/ # 用户提供的原始测试点文档(输入) ├── test_points/ # 管线生成的高质量测试点(输出 → 测试用例的输入) ├── test_cases/ # 测试用例生成结果输出目录 ├── frontend/ # Web 前端界面 ├── generate.py # 一键生成(自动选最新测试点 → 测试用例) ├── config.py # 全局配置 ├── start_services.py # 服务启动管理 ├── requirements.txt # Python 依赖 └── .env # 环境变量配置 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境变量 ```bash cp .env.example .env ``` 关键字段: ```env DEEPSEEK_API_KEY=your_deepseek_api_key RAG_SERVICE_URL=http://localhost:8000 RAG_SERVICE_ENABLED=true ``` ### 3. 启动 RAG 知识库服务 ai-agent 依赖外部 rag_knowledge_base 服务: ```bash # 克隆并启动 RAG 服务 git clone https://gitee.com/hankaizhou/rag_knowledge_base.git cd rag_knowledge_base pip install -r requirements.txt # 配置 .env,下载模型,构建知识库 python main.py --build python scripts/start_web.py # 服务运行在 http://localhost:8000 ``` ### 4. 生成测试点 从用户提供的测试点文档生成结构化高质量测试点: ```bash python src/main.py generate-test-points \ --kb-dir rag_knowledge_base \ --module "自动化充值" \ --test-points-file need_test_data/自动化充值V4.0测试点.md \ --output test_points/自动化充值V4.0测试点.md ``` ### 5. 生成测试用例 基于已生成的测试点文件生成测试用例: ```bash python src/main.py generate-test-cases \ --test-points test_points/自动化充值V4.0测试点.md \ --format excel ``` 测试用例默认输出到 `test_cases/` 目录。支持 `--max-test-points` 限制处理数量,`--retrieval-mode` 切换检索模式。 ### 6. 构建知识库 ```bash python src/main.py build-knowledge-base \ --docs-dir ./knowledge_data \ --retrieval-mode hybrid ``` ## 一键生成 项目根目录提供 `generate.py`,无需指定参数,自动选择 `test_points/` 中最新修改的测试点文件,生成测试用例到 `test_cases/`: ```bash python generate.py ``` 流程:扫描 `test_points/*.md` → 按修改时间取最新 → 执行管线 → 输出到 `test_cases/`。 ## 管线架构 ### 测试点生成管线 ``` Phase 1: 文档解析 → 提取测试域和术语 Phase 2: 全局 RAG TOP30 检索(共享上下文) Phase 3: 逐域并行生成测试点(利用 DeepSeek prompt 缓存) Phase 4: 质量评审和重复检测 Phase 5: 导出 Markdown ``` ### 测试用例生成管线 ``` Phase 1: 加载测试点 → 构建任务列表 Phase 2: 全局 RAG TOP30 检索(共享上下文) Phase 3: 并行 LLM 生成(每测试点 → 3-8 个测试用例,4 类场景) Phase 4: 后处理(去重、格式校验、占位符检测) Phase 5: 导出 Excel(样式化)+ Markdown ``` 每个测试用例覆盖 4 类场景:正常流程、异常流程、边界值、接口异常。 ## 异步任务 启动 Celery Worker: ```bash celery -A src.celery_worker worker --loglevel=info --pool=solo -E ``` 启动 API 服务: ```bash uvicorn src.api_server:app --host 0.0.0.0 --port 8000 ``` ## 技术栈 | 技术 | 用途 | |------|------| | Python 3.9+ | 开发语言 | | DeepSeek | LLM 推理 | | ChromaDB + LangChain | 知识库向量存储与检索 | | Celery + Redis | 异步任务队列 | | FastAPI | API 服务 | | Express.js | Web 前端服务 | | pandas / openpyxl | Excel 输出 | | requests / tenacity | HTTP 请求与重试 | ## 注意事项 1. 使用 LLM 功能需要有效的 DeepSeek API 密钥(或本地 Ollama) 2. 测试点文件需遵循 Markdown 格式,使用三级标题作为测试点 3. 必须先启动 rag_knowledge_base 服务,ai-agent 才能正常使用知识库 4. 生成测试用例前建议先构建知识库,以获得更好的检索质量 ## 版本历史 - **v1.0.0**:初始版本,基于 FAISS 轻量知识库 - **v1.1.0**:添加 Web 界面,支持更多文档格式 - **v1.2.0**:升级为 ChromaDB + LangChain 生产级 RAG 系统 - **v1.3.0**:微服务化改造,使用外部 rag_knowledge_base 服务 - **v1.4.0**:重构管线架构,新增 TestCasePipeline,移除旧的 TestCaseGenerator,全局 RAG TOP30 优化,项目清理 ## 相关项目 - [RAG 知识库服务](https://gitee.com/hankaizhou/rag_knowledge_base.git)