# 采购交易信息管理 - 测试说明 ## 1. 测试环境说明 ### 1.1 系统环境 - **操作系统**: Windows/Linux - **Java版本**: JDK 17 - **数据库**: MySQL 8.2.0 - **后端框架**: Spring Boot 3.5.8 - **前端框架**: Vue 2.6.12 + Element UI 2.15.14 ### 1.2 服务地址 - **后端地址**: http://localhost:8080 - **前端地址**: http://localhost:80 - **Swagger UI**: http://localhost:8080/swagger-ui/index.html ## 2. 测试账号信息 ### 2.1 管理员账号 - **用户名**: `admin` - **密码**: `admin123` - **权限**: 拥有所有权限 ### 2.2 获取Token 使用以下接口获取访问令牌: ``` POST /login/test Content-Type: application/json { "username": "admin", "password": "admin123" } ``` 响应示例: ```json { "code": 200, "msg": "操作成功", "token": "Bearer eyJhbGciOiJIUzI1NiJ9..." } ``` ## 3. 接口测试说明 ### 3.1 接口列表 采购交易管理模块共10个接口: | 序号 | 接口名称 | 方法 | 路径 | 权限标识 | |------|---------|------|------|----------| | 1 | 查询采购交易列表 | GET | /ccdi/purchaseTransaction/list | ccdi:purchaseTransaction:list | | 2 | 获取采购交易详情 | GET | /ccdi/purchaseTransaction/{purchaseId} | ccdi:purchaseTransaction:query | | 3 | 新增采购交易 | POST | /ccdi/purchaseTransaction | ccdi:purchaseTransaction:add | | 4 | 修改采购交易 | PUT | /ccdi/purchaseTransaction | ccdi:purchaseTransaction:edit | | 5 | 删除采购交易 | DELETE | /ccdi/purchaseTransaction/{purchaseIds} | ccdi:purchaseTransaction:remove | | 6 | 导出采购交易 | POST | /ccdi/purchaseTransaction/export | ccdi:purchaseTransaction:export | | 7 | 下载导入模板 | POST | /ccdi/purchaseTransaction/importTemplate | 无需权限 | | 8 | 导入采购交易 | POST | /ccdi/purchaseTransaction/importData | ccdi:purchaseTransaction:import | | 9 | 查询导入状态 | GET | /ccdi/purchaseTransaction/importStatus/{taskId} | ccdi:purchaseTransaction:import | | 10 | 查询导入失败记录 | GET | /ccdi/purchaseTransaction/importFailures/{taskId} | ccdi:purchaseTransaction:import | ### 3.2 接口测试工具推荐 1. **Postman**: 图形化接口测试工具 2. **Swagger UI**: 在线接口文档和测试工具 3. **curl**: 命令行工具 ### 3.3 接口测试要点 #### 3.3.1 分页查询测试 ```bash # 测试分页查询 GET /ccdi/purchaseTransaction/list?pageNum=1&pageSize=10 # 测试条件查询 GET /ccdi/purchaseTransaction/list?projectName=测试&applicantName=张三 # 测试日期范围查询 GET /ccdi/purchaseTransaction/list?params[beginApplyDate]=2025-01-01¶ms[endApplyDate]=2025-12-31 ``` #### 3.3.2 数据验证测试 - 测试必填字段校验(purchaseId为必填) - 测试字段长度限制 - 测试数值类型字段(金额、数量等) - 测试日期格式校验 #### 3.3.3 异步导入测试 ```bash # 1. 提交导入任务 POST /ccdi/purchaseTransaction/importData?updateSupport=false Content-Type: multipart/form-data # 上传Excel文件 # 2. 获取返回的taskId # 响应: {"code": 200, "msg": "导入任务已提交,任务ID:task-xxx"} # 3. 轮询查询导入状态 GET /ccdi/purchaseTransaction/importStatus/task-xxx # 4. 如果有失败记录,查询失败详情 GET /ccdi/purchaseTransaction/importFailures/task-xxx ``` ## 4. 前端功能测试说明 ### 4.1 页面访问测试 1. 登录系统后,在左侧菜单找到"CCDI管理" -> "采购交易管理" 2. 点击菜单,确认页面正常加载 3. 确认表格、查询条件、操作按钮正常显示 ### 4.2 查询功能测试 1. **基础查询**: - 输入项目名称进行模糊查询 - 输入标的物名称进行模糊查询 - 输入申请人进行模糊查询 2. **日期范围查询**: - 选择申请日期范围 - 点击"搜索"按钮 - 验证查询结果是否在指定日期范围内 3. **分页查询**: - 切换每页显示条数(10/20/50/100) - 点击页码切换 - 验证分页数据正确性 4. **重置查询**: - 输入查询条件后点击"重置" - 验证查询条件清空,列表恢复全部数据 ### 4.3 新增功能测试 1. 点击"新增"按钮 2. 填写表单数据(测试不同场景): - **正常数据**: 填写完整正确信息 - **必填验证**: 不填写purchaseId,提交时验证提示 - **字段长度**: 输入超长字符串,验证长度限制 - **数值字段**: 输入负数、小数点等 - **日期字段**: 选择各个日期,验证日期顺序 3. 点击"确定"提交 4. 验证成功提示和列表刷新 ### 4.4 编辑功能测试 1. 点击某条记录的"编辑"按钮 2. 验证表单数据回显正确 3. 修改部分字段 4. 提交保存 5. 验证修改成功和数据更新 ### 4.5 详情功能测试 1. 点击某条记录的"详情"按钮 2. 验证详情对话框显示完整 3. 验证所有字段正确显示 4. 验证金额格式化显示(千分位) 5. 验证日期格式化显示 ### 4.6 删除功能测试 1. **单条删除**: - 点击某条记录的"删除"按钮 - 确认删除提示 - 验证删除成功 2. **批量删除**: - 勾选多条记录 - 点击"删除"按钮 - 确认删除提示 - 验证批量删除成功 ### 4.7 导出功能测试 1. 点击"导出"按钮 2. 验证Excel文件下载 3. 打开Excel文件,验证: - 表头正确 - 数据完整 - 格式正确(日期、金额等) - 字典项显示正确 ### 4.8 导入功能测试 1. **下载模板**: - 点击"导入"按钮 - 点击"下载模板"链接 - 验证模板文件包含下拉框 2. **填写导入数据**: - 使用下拉框选择字典值 - 填写测试数据(包含正常、异常数据) 3. **导入测试**: - 上传Excel文件 - 选择是否更新已存在数据 - 提交导入 - 验证异步导入提示 - 等待导入完成 - 查看导入结果(成功/失败数量) - 如果有失败,查看失败原因 4. **导入验证**: - 刷新列表,验证数据导入成功 - 验证数据正确性 - 验证字典值正确 ## 5. 导入导出测试说明 ### 5.1 导出功能测试要点 1. **全部导出**: - 不设置任何查询条件 - 点击导出 - 验证导出所有数据 2. **条件导出**: - 设置查询条件 - 点击导出 - 验证只导出符合条件的数据 3. **数据格式验证**: - 金额字段:显示为数字格式,保留2位小数 - 日期字段:格式为 yyyy-MM-dd - 字典字段:显示字典标签而非值 ### 5.2 导入功能测试要点 #### 5.2.1 模板验证 1. 下载模板,验证包含所有必填字段 2. 验证字典字段包含下拉框(使用@DictDropdown注解) 3. 验证字段列顺序与实体类一致 #### 5.2.2 正常数据导入测试 准备包含以下特征的测试数据: - 完整填写所有字段 - 使用下拉框选择字典值 - 日期格式正确 - 金额数值合理 #### 5.2.3 异常数据导入测试 准备包含以下错误的数据: 1. **必填字段缺失**: - purchaseId为空 - 验证导入时提示必填 2. **字段长度超限**: - 项目名称超过200字符 - 验证导入时提示长度超限 3. **数据格式错误**: - 日期格式不正确 - 金额填写非数字 - 验证导入时提示格式错误 4. **重复数据**: - purchaseId重复 - 测试"是否更新"选项: - 不更新:跳过重复数据 - 更新:更新已有数据 #### 5.2.4 批量导入测试 准备1000+条测试数据: - 验证导入性能 - 验证异步导入不阻塞 - 验证导入进度提示 - 验证导入结果统计正确 #### 5.2.5 导入失败验证 导入后: 1. 查看导入结果对话框 2. 验证显示成功/失败数量 3. 如果有失败: - 查看失败记录列表 - 验证显示行号 - 验证显示具体错误信息 - 修正错误数据后重新导入 ## 6. 性能测试建议 ### 6.1 分页查询性能 - 测试不同数据量(100/1000/10000条)的查询响应时间 - 测试复杂条件查询性能 - 验证MyBatis Plus分页效率 ### 6.2 导入性能测试 - 测试100条数据导入时间 - 测试1000条数据导入时间 - 测试5000条数据导入时间 - 监控数据库连接池使用情况 - 监控内存使用情况 ### 6.3 导出性能测试 - 测试100条数据导出时间 - 测试1000条数据导出时间 - 测试10000条数据导出时间 - 验证大文件导出不卡顿 ## 7. 常见问题及解决方案 ### 7.1 导入失败 **问题**: 导入时提示文件格式错误 **解决**: - 确认文件格式为.xlsx或.xls - 不要修改模板的表头 - 不要删除或添加列 ### 7.2 导入卡顿 **问题**: 导入大量数据时界面卡顿 **解决**: - 本系统采用异步导入,不会卡顿 - 导入后会有进度提示 - 导入完成后会显示结果 ### 7.3 数据导出乱码 **问题**: 导出的Excel中文乱码 **解决**: - 系统使用UTF-8编码 - 确保Excel软件支持UTF-8 - 建议使用WPS或Microsoft Office打开 ### 7.4 权限不足 **问题**: 提示无权限访问 **解决**: - 确认用户已分配相应角色 - 确认角色已分配菜单权限 - 确认角色已分配按钮权限 ## 8. 测试报告模板 测试完成后,建议记录以下内容: ### 8.1 功能测试报告 | 功能模块 | 测试用例数 | 通过数 | 失败数 | 通过率 | |---------|-----------|--------|--------|--------| | 列表查询 | 10 | 10 | 0 | 100% | | 新增功能 | 8 | 8 | 0 | 100% | | 编辑功能 | 6 | 6 | 0 | 100% | | 删除功能 | 4 | 4 | 0 | 100% | | 导出功能 | 3 | 3 | 0 | 100% | | 导入功能 | 12 | 12 | 0 | 100% | | **合计** | **43** | **43** | **0** | **100%** | ### 8.2 性能测试报告 | 测试项 | 数据量 | 响应时间 | 状态 | |--------|--------|----------|------| | 分页查询 | 1000条 | <200ms | 通过 | | 分页查询 | 10000条 | <500ms | 通过 | | 数据导入 | 1000条 | <5s | 通过 | | 数据导出 | 1000条 | <2s | 通过 | | 数据导出 | 10000条 | <10s | 通过 | ## 9. 测试完成标准 ### 9.1 功能完整性 - [ ] 所有接口测试通过 - [ ] 所有前端功能测试通过 - [ ] 所有验证规则生效 - [ ] 导入导出功能正常 ### 9.2 数据正确性 - [ ] 数据保存完整 - [ ] 数据查询准确 - [ ] 数据更新成功 - [ ] 数据删除正确 ### 9.3 用户体验 - [ ] 操作响应及时 - [ ] 提示信息清晰 - [ ] 错误处理友好 - [ ] 界面布局合理 ### 9.4 性能要求 - [ ] 分页查询 <500ms - [ ] 单条CRUD <200ms - [ ] 导入1000条 <5s - [ ] 导出1000条 <2s ## 10. 测试注意事项 1. **测试数据准备**: 准备各种边界情况的测试数据 2. **环境一致性**: 确保测试环境与生产环境配置一致 3. **数据备份**: 测试前备份重要数据 4. **日志记录**: 测试过程中记录遇到的问题和解决方案 5. **回归测试**: 修改bug后进行回归测试 6. **用户验收**: 建议邀请业务人员进行用户验收测试