diff --git a/doc/test-data/purchase_transaction/README.md b/doc/test-data/purchase_transaction/README.md new file mode 100644 index 0000000..a9c08a6 --- /dev/null +++ b/doc/test-data/purchase_transaction/README.md @@ -0,0 +1,379 @@ +# 采购交易信息管理 - 测试说明 + +## 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. **用户验收**: 建议邀请业务人员进行用户验收测试