- 测试环境说明(系统环境、服务地址) - 测试账号信息(admin/admin123) - 接口测试说明(10个接口详细说明) - 前端功能测试(查询/新增/编辑/详情/删除/导出/导入) - 导入导出测试要点 - 性能测试建议 - 常见问题及解决方案 - 测试报告模板 - 测试完成标准 文件路径: doc/test-data/purchase_transaction/README.md Task 19: 创建测试说明 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
11 KiB
11 KiB
采购交易信息管理 - 测试说明
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"
}
响应示例:
{
"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 接口测试工具推荐
- Postman: 图形化接口测试工具
- Swagger UI: 在线接口文档和测试工具
- curl: 命令行工具
3.3 接口测试要点
3.3.1 分页查询测试
# 测试分页查询
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 异步导入测试
# 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 页面访问测试
- 登录系统后,在左侧菜单找到"CCDI管理" -> "采购交易管理"
- 点击菜单,确认页面正常加载
- 确认表格、查询条件、操作按钮正常显示
4.2 查询功能测试
-
基础查询:
- 输入项目名称进行模糊查询
- 输入标的物名称进行模糊查询
- 输入申请人进行模糊查询
-
日期范围查询:
- 选择申请日期范围
- 点击"搜索"按钮
- 验证查询结果是否在指定日期范围内
-
分页查询:
- 切换每页显示条数(10/20/50/100)
- 点击页码切换
- 验证分页数据正确性
-
重置查询:
- 输入查询条件后点击"重置"
- 验证查询条件清空,列表恢复全部数据
4.3 新增功能测试
- 点击"新增"按钮
- 填写表单数据(测试不同场景):
- 正常数据: 填写完整正确信息
- 必填验证: 不填写purchaseId,提交时验证提示
- 字段长度: 输入超长字符串,验证长度限制
- 数值字段: 输入负数、小数点等
- 日期字段: 选择各个日期,验证日期顺序
- 点击"确定"提交
- 验证成功提示和列表刷新
4.4 编辑功能测试
- 点击某条记录的"编辑"按钮
- 验证表单数据回显正确
- 修改部分字段
- 提交保存
- 验证修改成功和数据更新
4.5 详情功能测试
- 点击某条记录的"详情"按钮
- 验证详情对话框显示完整
- 验证所有字段正确显示
- 验证金额格式化显示(千分位)
- 验证日期格式化显示
4.6 删除功能测试
-
单条删除:
- 点击某条记录的"删除"按钮
- 确认删除提示
- 验证删除成功
-
批量删除:
- 勾选多条记录
- 点击"删除"按钮
- 确认删除提示
- 验证批量删除成功
4.7 导出功能测试
- 点击"导出"按钮
- 验证Excel文件下载
- 打开Excel文件,验证:
- 表头正确
- 数据完整
- 格式正确(日期、金额等)
- 字典项显示正确
4.8 导入功能测试
-
下载模板:
- 点击"导入"按钮
- 点击"下载模板"链接
- 验证模板文件包含下拉框
-
填写导入数据:
- 使用下拉框选择字典值
- 填写测试数据(包含正常、异常数据)
-
导入测试:
- 上传Excel文件
- 选择是否更新已存在数据
- 提交导入
- 验证异步导入提示
- 等待导入完成
- 查看导入结果(成功/失败数量)
- 如果有失败,查看失败原因
-
导入验证:
- 刷新列表,验证数据导入成功
- 验证数据正确性
- 验证字典值正确
5. 导入导出测试说明
5.1 导出功能测试要点
-
全部导出:
- 不设置任何查询条件
- 点击导出
- 验证导出所有数据
-
条件导出:
- 设置查询条件
- 点击导出
- 验证只导出符合条件的数据
-
数据格式验证:
- 金额字段:显示为数字格式,保留2位小数
- 日期字段:格式为 yyyy-MM-dd
- 字典字段:显示字典标签而非值
5.2 导入功能测试要点
5.2.1 模板验证
- 下载模板,验证包含所有必填字段
- 验证字典字段包含下拉框(使用@DictDropdown注解)
- 验证字段列顺序与实体类一致
5.2.2 正常数据导入测试
准备包含以下特征的测试数据:
- 完整填写所有字段
- 使用下拉框选择字典值
- 日期格式正确
- 金额数值合理
5.2.3 异常数据导入测试
准备包含以下错误的数据:
-
必填字段缺失:
- purchaseId为空
- 验证导入时提示必填
-
字段长度超限:
- 项目名称超过200字符
- 验证导入时提示长度超限
-
数据格式错误:
- 日期格式不正确
- 金额填写非数字
- 验证导入时提示格式错误
-
重复数据:
- purchaseId重复
- 测试"是否更新"选项:
- 不更新:跳过重复数据
- 更新:更新已有数据
5.2.4 批量导入测试
准备1000+条测试数据:
- 验证导入性能
- 验证异步导入不阻塞
- 验证导入进度提示
- 验证导入结果统计正确
5.2.5 导入失败验证
导入后:
- 查看导入结果对话框
- 验证显示成功/失败数量
- 如果有失败:
- 查看失败记录列表
- 验证显示行号
- 验证显示具体错误信息
- 修正错误数据后重新导入
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. 测试注意事项
- 测试数据准备: 准备各种边界情况的测试数据
- 环境一致性: 确保测试环境与生产环境配置一致
- 数据备份: 测试前备份重要数据
- 日志记录: 测试过程中记录遇到的问题和解决方案
- 回归测试: 修改bug后进行回归测试
- 用户验收: 建议邀请业务人员进行用户验收测试