{"id":31789436,"url":"https://github.com/echoxiawan/kbasecase","last_synced_at":"2025-10-10T14:51:48.446Z","repository":{"id":298430273,"uuid":"998725955","full_name":"Echoxiawan/KBaseCase","owner":"Echoxiawan","description":"基于知识库的测试用例生成工具","archived":false,"fork":false,"pushed_at":"2025-06-11T03:19:29.000Z","size":188,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-11T04:29:45.684Z","etag":null,"topics":["ai","dify","llm","rag","testcase"],"latest_commit_sha":null,"homepage":"https://github.com/Echoxiawan/KBaseCase","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Echoxiawan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-09T06:38:12.000Z","updated_at":"2025-06-11T03:19:32.000Z","dependencies_parsed_at":"2025-06-11T04:30:11.120Z","dependency_job_id":"556d4bb6-5c4a-4638-a548-1347a5b85270","html_url":"https://github.com/Echoxiawan/KBaseCase","commit_stats":null,"previous_names":["echoxiawan/kbasecase"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Echoxiawan/KBaseCase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Echoxiawan%2FKBaseCase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Echoxiawan%2FKBaseCase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Echoxiawan%2FKBaseCase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Echoxiawan%2FKBaseCase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Echoxiawan","download_url":"https://codeload.github.com/Echoxiawan/KBaseCase/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Echoxiawan%2FKBaseCase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004183,"owners_count":26083689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","dify","llm","rag","testcase"],"created_at":"2025-10-10T14:51:34.094Z","updated_at":"2025-10-10T14:51:48.431Z","avatar_url":"https://github.com/Echoxiawan.png","language":"Python","readme":"# 测试用例生成工具\n\n基于知识库的测试用例自动生成系统，支持从文档中提取信息并结合Dify知识库生成高质量测试用例。\n\n## 核心功能\n\n### 文档处理\n- **多格式支持**：解析PDF、DOCX、Markdown格式文档\n- **OCR集成**：使用PaddleOCR提取文档图片中的文本内容\n- **智能文本分析**：自动提取文档关键信息用于测试用例生成\n\n### 知识库管理（基于Dify API）\n- **文件上传**：支持向Dify知识库添加各类文档\n- **文件查看**：浏览已上传的Dify知识库文件，包括处理状态和索引情况\n- **文件删除**：从Dify知识库中移除不需要的文档\n- **知识检索**：利用Dify API进行高效的语义检索，增强测试用例生成质量\n\n### 测试用例生成\n- **AI生成**：基于文档内容和Dify知识库信息自动生成测试用例\n- **批次管理**：按批次组织和管理测试用例\n- **质量评审**：支持对生成的测试用例进行人工审核（通过/拒绝）\n- **导出功能**：将测试用例导出为Excel格式，方便集成到测试流程\n\n## 技术架构\n\n- **后端**：Flask + SQLAlchemy\n- **AI集成**：OpenAI API + Dify知识库API\n- **文档处理**：PyPDF2, python-docx, markdown, PaddleOCR\n- **前端**：原生HTML/CSS/JavaScript，无框架依赖\n- **数据存储**：MySQL数据库\n\n## 安装指南\n\n### 系统要求\n- Python 3.11+\n- MySQL 5.7+\n- PaddleOCR (用于图片文本提取)\n- Dify API账户（用于知识库管理）\n\n### 步骤\n\n1. **克隆项目**\n```bash\ngit clone https://github.com/Echoxiawan/KBaseCase.git\ncd KBaseCase\n```\n\n2. **安装依赖**\n```bash\npip install -r requirements.txt\n```\n\n3. **配置环境变量**\n创建`.env`文件，参考以下配置：\n```\n# Flask配置\nFLASK_APP=run.py\nFLASK_ENV=development\nSECRET_KEY=your_secret_key_here\n\n# 数据库配置\nDB_HOST=localhost\nDB_PORT=3306\nDB_USER=root\nDB_PASSWORD=password\nDB_NAME=ai_testcase_generator\n\n# Dify API配置（必需）\nDIFY_API_KEY=your_dify_api_key\nDIFY_API_BASE_URL=https://api.dify.ai/v1\nDIFY_DATASET_ID=your_knowledge_base_id\n\n# AI模型配置\nAI_MODEL=gpt-3.5-turbo\nAI_BASE_URL=https://api.openai.com/v1\nAI_API_KEY=your_openai_api_key\nAI_MAX_TOKENS=4096\n\n# OCR配置，开启此功能建议16G以上内存，最好使用gpu，否则建议关闭\nOCR_ENABLED=False         # OCR总开关\nOCR_LANG=ch              # OCR语言，默认中文\nOCR_CONFIDENCE_THRESHOLD=0.5    # OCR识别结果的置信度阈值\nOCR_MAX_RETRIES=3        # OCR处理失败时的最大重试次数\n\n# 日志配置\nLOG_LEVEL=INFO           # 日志级别：DEBUG, INFO, WARNING, ERROR, CRITICAL\nLOG_FILE=app.log         # 日志文件路径\n```\n\n4. **初始化数据库**\n```bash\n# 创建数据库\nmysql -u root -p -e \"CREATE DATABASE ai_testcase_generator CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\"\n\n# 初始化表结构\npython -m app.utils.db_init\n```\n\n5. **运行应用**\n```bash\npython run.py\n```\n应用将在 http://localhost:5000 运行。\n\n## 使用指南\n\n### 首页（测试用例生成）\n\n1. **上传文档**：\n   - 点击\"选择文件\"或拖拽文件到上传区域\n   - 支持的格式：PDF、DOCX、MD\n   - 填写批次名称和描述（可选）\n   - 设置期望生成的测试用例数量\n   - 点击\"上传并生成测试用例\"\n\n2. **批次管理**：\n   - 查看所有测试用例批次\n   - 筛选：使用顶部筛选器按日期或状态筛选批次\n   - 搜索：使用搜索框查找特定批次\n   - 操作：\n     - 查看：进入批次详情页查看测试用例\n     - 导出：将批次中的测试用例导出为Excel\n     - 删除：删除整个批次及其测试用例\n\n### 测试用例详情页\n\n1. **批次信息**：\n   - 显示批次名称、描述和统计信息（总数、已审核、已通过、已拒绝）\n\n2. **测试用例列表**：\n   - 筛选：使用筛选器查看\"全部\"、\"待审核\"、\"已通过\"或\"已拒绝\"的测试用例\n   - 搜索：使用搜索框查找特定测试用例\n   - 排序：按标题或状态排序\n\n3. **测试用例操作**：\n   - 审核：点击\"通过\"或\"拒绝\"按钮更改测试用例状态\n   - 查看详情：点击测试步骤或预期结果展开查看详细内容\n   - 批量操作：选择多个测试用例进行批量通过或拒绝\n\n4. **导出功能**：\n   - 点击\"导出Excel\"按钮将当前批次的测试用例导出为Excel文件\n\n### Dify知识库管理\n\n1. **上传文件**：\n   - 点击\"选择文件\"或拖拽文件到上传区域\n   - 支持的格式：PDF、DOCX、MD等\n   - 点击\"上传到知识库\"\n\n2. **文件列表**：\n   - 查看所有Dify知识库文件\n   - 筛选：使用筛选器按处理状态查看文件\n   - 搜索：使用搜索框查找特定文件\n   - 排序：按日期、名称或大小排序\n\n3. **文件操作**：\n   - 删除：从Dify知识库中删除文件\n\n## 最佳实践\n\n1. **文档准备**：\n   - 确保文档内容清晰、结构化，以获得更好的测试用例\n\n2. **Dify知识库管理**：\n   - 上传相关领域的文档到Dify知识库，以增强测试用例生成质量\n   - 定期更新知识库内容，保持信息的时效性\n   - 确保Dify API密钥和知识库ID配置正确\n\n3. **测试用例审核**：\n   - 审核生成的测试用例，确保其质量和适用性\n   - 对不符合要求的测试用例进行拒绝，系统会记录这些反馈\n\n4. **系统优化**：\n   - 调整OCR参数以提高图片文本识别质量\n   - 根据需要调整生成的测试用例数量\n\n## 故障排除\n\n1. **OCR问题**：\n   - 如遇OCR识别问题，可尝试调整OCR_CONFIDENCE_THRESHOLD参数\n   - 如不需要OCR功能，可设置OCR_ENABLED=False\n\n2. **API限制**：\n   - 如遇到AI模型API或Dify API限制，可适当降低生成的测试用例数量\n   - 确保API密钥配置正确且有足够的额度\n\n3. **文件处理错误**：\n   - 确保上传的文件格式正确且未损坏\n   - 检查文件大小是否超过系统或Dify API限制\n\n4. **数据库问题**：\n   - 确保数据库连接配置正确\n   - 检查数据库服务是否正常运行\n\n5. **Dify知识库问题**：\n   - 检查Dify API连接状态\n   - 确认知识库ID是否正确\n   - 验证上传的文件是否符合Dify知识库要求\n\n## 系统限制\n\n1. **文件大小**：建议单个文件不超过20MB\n2. **文件格式**：仅支持PDF、DOCX和MD格式\n3. **API依赖**：需要有效的OpenAI API和Dify API密钥\n4. **OCR支持**：主要针对中文文本优化，其他语言可能需要额外配置\n5. **Dify知识库限制**：受Dify平台本身的文件大小、数量和API调用频率限制\n\n## WeChat Contact\n\n\u003cimg src=\"contact.jpg\" alt=\"Contact QR Code\" style=\"width: 30%; height: auto;\"\u003e\n\n## 许可证\n\n[MIT](LICENSE) \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechoxiawan%2Fkbasecase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fechoxiawan%2Fkbasecase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechoxiawan%2Fkbasecase/lists"}