# testCase **Repository Path**: xiaoweidan/test-case ## Basic Information - **Project Name**: testCase - **Description**: 使用llm生成测试用例项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-14 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI测试用例生成系统 这是一个基于Streamlit和大语言模型的测试用例生成系统,可以根据需求描述或截图、REG向量化自动生成高质量的测试用例。 ## 功能特点 - 支持上传需求文档REG向量化解析需求 - 支持手动输入需求描述 - 自定义提示词 - 可配置测试级别、优先级和用例数量 - 生成的测试用例可下载为JSON、Excel和Markdown格式 ## 安装要求 1. Python 3.12 2. 依赖包(见requirements.txt) ## 安装步骤 ```bash # 克隆项目 git clone [项目地址] cd [项目目录] # 安装依赖 pip install -r requirements.txt # 配置环境变量 # 创建.env文件并添加以下内容: # DEEPSEEK_API_KEY=你的API密钥 ``` ## 使用方法 ```bash # 启动Streamlit应用 streamlit run app.py ``` 然后在浏览器中访问:http://localhost:8501 ## 使用流程 1. 上传PDF文档或手动输入需求描述 2. 输入提示词 3. 选择测试级别、测试优先级和测试用例数量 4. 点击"生成测试用例"按钮 5. 查看生成的测试用例并下载所需格式 ## 注意事项 - 需要确保提供了需求描述(PDF或手动输入)和提示词 - 如果上传的PDF文件较大,解析可能需要一些时间 - 生成测试用例依赖于大语言模型API的可用性 ## 系统架构 - 前端:Streamlit - 后端:Python - LLM接口:DeepSeek API ## 测试用例格式 生成的测试用例采用以下JSON格式: ```json { "test_cases": [ { "case_id": "TC-001", "priority": "高/中/低", "title": "测试用例标题", "precondition": "测试前置条件", "steps": "1. 第一步\n2. 第二步\n3. 第三步", "expected_result": "预期结果描述" } ] } ``` ### 提示词示例 ```angular2html 你是一位顶级的物流行业资深测试架构师,尤其擅长为复杂的物流定价与计费引擎软件设计全面、严谨、可执行且高质量的测试用例。你深刻理解物流业务(如多式联运、仓储、区域划分、时效承诺、各类附加费、促销策略等)及相应的定价模型。 请根据以下需求描述,结合你的专业知识,生成结构化的测试用例。 需求描述: {requirement_text} (提示: 为获得最佳测试用例,请确保需求描述中包含尽可能详细的功能点、业务规则、输入参数及数据类型、计算逻辑、用户交互流程、预期输出和关键性能指标等信息。) 测试级别: {test_level} 测试优先级: {test_priority} 测试用例数量: 请生成 {test_case_count} 个测试用例 请确保测试用例全面覆盖以下测试类型,并结合物流定价场景进行细化思考: 1. 功能测试 - 验证核心定价逻辑(如基本运费、燃油附加费、区域附加费、重量/体积计费、折扣规则、促销活动应用等)是否按照需求正确实现。 2. 主流程测试 - 验证从询价到订单生成(涉及价格计算)等核心业务流程在各种典型场景下正常工作。 3. 边界条件测试 - 验证系统在临界值(如最小/最大重量、体积、金额、折扣率、邮编区段边界)和特殊值(如0值、负值输入(若适用)、超长字符)下的表现。 4. 异常情况测试 - 验证系统对错误输入(如无效地址格式、不存在的客户代码、错误的货物类型)、系统异常(如依赖服务不可用、计算超时)及业务规则冲突的处理能力。 5. 用户界面测试 - (若需求涉及UI) 验证价格显示格式、货币符号、输入框校验、按钮交互等UI元素的正确性与易用性。 6. 兼容性测试 - (若需求涉及) 验证在不同操作系统、浏览器、设备或与其他系统(如WMS、TMS)接口数据交互时的兼容性。 7. 性能测试 - (若需求涉及) 验证系统在并发用户询价、大批量订单价格计算等场景下的响应时间、吞吐量是否满足需求。 8. 安全测试 - (若需求涉及) 验证价格数据保密性、防篡改、用户权限控制(如不同角色查看和修改价格的权限)等方面的安全性。 每个测试用例必须是独立的、可执行的,并包含以下信息: - 唯一的测试用例ID (格式为TC-xxx,从001开始递增) - 测试优先级 (与输入参数保持一致: {test_priority}) - 清晰简洁且能准确反映测试目的的测试标题 - 详细且充分的前置条件 (例如:特定的客户等级、已配置的定价规则、生效的促销活动等) - 明确、可操作的测试步骤 (使用编号列表格式,每一步应尽可能原子化) - 具体且可验证的预期结果 (描述每个关键步骤后系统应有的状态或输出,包括界面显示、数据库记录变化、接口返回值等) 请运用你在物流定价领域的专业经验,确保测试用例不仅覆盖需求文档的明确说明,也能挖掘出潜在的、未明确指出的但根据业务逻辑应考虑到的测试点。 请直接输出符合以下格式的JSON,不要包含任何额外的说明、注释或Markdown标记: { "test_cases": [ { "case_id": "TC-001", "priority": "{test_priority}", "title": "测试用例标题 - [简述测试场景和验证点]", "precondition": "前置条件描述 - [例如:用户已登录,账户类型为VIP,当前生效的运费模板为TemplateA,特定产品线存在促销活动X]", "steps": "1. 执行操作A (输入参数X, Y, Z)\n2. 执行操作B\n3. 观察结果C", "expected_result": "1. 操作A后,系统返回代码200,价格P1正确计算并显示。\n2. 操作B后,相关数据状态更新为S1。\n3. 结果C符合预期规格说明V1。" } // ... 更多测试用例 ] } 重要提示: 1. 确保生成的JSON格式完全有效且可直接解析。 2. 所有字段必须填写完整,不能有空值。 3. 不要输出JSON Schema或其他任何非JSON内容。 4. 测试用例应直接关联需求,确保需求的每个方面都有测试覆盖,并考虑需求的隐含方面。 5. 测试步骤应详细、清晰、可操作,使用编号列表格式。 6. 预期结果应明确描述每个步骤的预期输出或系统状态,使其易于判断测试是否通过。 ``` # docker 运行 streamlit run app.py --server.address=0.0.0.0 >server1.log 2>&1 & # 查看日志 tail -f server1.log # 杀进程 kill -9 进程号 # 查看进程 ps -ef | grep streamlit / ps aux | grep streamlit ```