325 lines
10 KiB
Markdown
325 lines
10 KiB
Markdown
# 中介库导入失败记录查看功能 - 测试清单
|
|
|
|
## 测试环境
|
|
- 前端: Vue 2.6.12 + Element UI
|
|
- 后端: Spring Boot 3.5.8
|
|
- 测试数据目录: `doc/test-data/purchase_transaction/`
|
|
|
|
## 测试前准备
|
|
|
|
### 1. 准备测试数据
|
|
准备包含错误数据的Excel文件,用于测试导入失败场景:
|
|
|
|
**个人中介测试数据应包含的错误类型:**
|
|
- 缺少必填字段(姓名、证件号)
|
|
- 证件号格式错误
|
|
- 手机号格式错误
|
|
- 重复数据(唯一键冲突)
|
|
|
|
**实体中介测试数据应包含的错误类型:**
|
|
- 缺少必填字段(机构名称、统一社会信用代码)
|
|
- 统一社会信用代码格式错误
|
|
- 重复数据(唯一键冲突)
|
|
|
|
### 2. 清理环境
|
|
打开浏览器开发者工具 → Application → Local Storage,清除以下key:
|
|
- `intermediary_person_import_last_task`
|
|
- `intermediary_entity_import_last_task`
|
|
|
|
## 功能测试清单
|
|
|
|
### 测试1: 个人中介导入失败记录查看
|
|
|
|
#### 步骤
|
|
1. 访问中介库管理页面
|
|
2. 点击"导入"按钮
|
|
3. 选择"个人中介"导入类型
|
|
4. 上传包含错误数据的个人中介Excel文件
|
|
5. 等待导入完成(观察通知消息)
|
|
6. 验证"查看个人导入失败记录"按钮是否显示
|
|
7. 点击按钮查看失败记录
|
|
|
|
#### 预期结果
|
|
- ✅ 导入完成后显示通知:"成功X条,失败Y条"
|
|
- ✅ 工具栏显示"查看个人导入失败记录"按钮(黄色警告样式)
|
|
- ✅ 按钮tooltip显示上次导入时间
|
|
- ✅ 点击按钮打开对话框
|
|
- ✅ 对话框标题:"个人中介导入失败记录"
|
|
- ✅ 顶部显示统计信息:"导入时间: XXX | 总数: X条 | 成功: X条 | 失败: X条"
|
|
- ✅ 表格显示失败记录,包含以下列:
|
|
- 姓名
|
|
- 证件号码
|
|
- 人员类型
|
|
- 性别
|
|
- 手机号码
|
|
- 所在公司
|
|
- **失败原因**(最小宽度200px,溢出显示tooltip)
|
|
- ✅ 如果失败记录超过10条,分页组件正常显示
|
|
|
|
### 测试2: 实体中介导入失败记录查看
|
|
|
|
#### 步骤
|
|
1. 访问中介库管理页面
|
|
2. 点击"导入"按钮
|
|
3. 选择"实体中介"导入类型
|
|
4. 上传包含错误数据的实体中介Excel文件
|
|
5. 等待导入完成(观察通知消息)
|
|
6. 验证"查看实体导入失败记录"按钮是否显示
|
|
7. 点击按钮查看失败记录
|
|
|
|
#### 预期结果
|
|
- ✅ 导入完成后显示通知:"成功X条,失败Y条"
|
|
- ✅ 工具栏显示"查看实体导入失败记录"按钮(黄色警告样式)
|
|
- ✅ 按钮tooltip显示上次导入时间
|
|
- ✅ 点击按钮打开对话框
|
|
- ✅ 对话框标题:"实体中介导入失败记录"
|
|
- ✅ 顶部显示统计信息:"导入时间: XXX | 总数: X条 | 成功: X条 | 失败: X条"
|
|
- ✅ 表格显示失败记录,包含以下列:
|
|
- 机构名称
|
|
- 统一社会信用代码
|
|
- 主体类型
|
|
- 企业性质
|
|
- 法定代表人
|
|
- 成立日期(格式: YYYY-MM-DD)
|
|
- **失败原因**(最小宽度200px,溢出显示tooltip)
|
|
- ✅ 如果失败记录超过10条,分页组件正常显示
|
|
|
|
### 测试3: localStorage持久化
|
|
|
|
#### 步骤
|
|
1. 执行个人中介导入,包含失败记录
|
|
2. 观察按钮显示
|
|
3. 刷新页面(F5)
|
|
4. 观察"查看个人导入失败记录"按钮是否仍然显示
|
|
5. 点击按钮验证能否正常查看失败记录
|
|
|
|
#### 预期结果
|
|
- ✅ 刷新页面后按钮仍然显示
|
|
- ✅ 点击按钮能正常查看失败记录
|
|
- ✅ localStorage中存在`intermediary_person_import_last_task`或`intermediary_entity_import_last_task`
|
|
|
|
### 测试4: 分页功能
|
|
|
|
#### 步骤
|
|
1. 准备至少20条失败记录的数据
|
|
2. 导入并等待完成
|
|
3. 打开失败记录对话框
|
|
4. 测试翻页功能
|
|
|
|
#### 预期结果
|
|
- ✅ 分页组件显示正确的总记录数
|
|
- ✅ 每页显示10条记录
|
|
- ✅ 点击下一页/上一页按钮正常切换
|
|
- ✅ 修改每页显示数量正常工作
|
|
|
|
### 测试5: 清除历史记录
|
|
|
|
#### 步骤
|
|
1. 打开失败记录对话框
|
|
2. 点击"清除历史记录"按钮
|
|
3. 确认清除操作
|
|
4. 关闭对话框
|
|
5. 观察工具栏按钮是否隐藏
|
|
6. 检查localStorage是否已清除
|
|
|
|
#### 预期结果
|
|
- ✅ 弹出确认对话框:"确认清除上次导入记录?"
|
|
- ✅ 确认后显示成功提示:"已清除"
|
|
- ✅ 对话框关闭
|
|
- ✅ 工具栏对应的"查看失败记录"按钮隐藏
|
|
- ✅ localStorage中的对应key已删除
|
|
|
|
### 测试6: 记录过期处理
|
|
|
|
#### 方法1: 手动修改localStorage模拟过期
|
|
1. 打开开发者工具 → Application → Local Storage
|
|
2. 找到`intermediary_person_import_last_task`或`intermediary_entity_import_last_task`
|
|
3. 修改`saveTime`为8天前的时间戳
|
|
4. 刷新页面
|
|
5. 观察按钮是否隐藏
|
|
|
|
#### 方法2: 等待后端记录过期
|
|
1. 导入数据并等待失败记录显示
|
|
2. 等待后端清理过期记录(根据后端配置的过期时间)
|
|
3. 点击"查看失败记录"按钮
|
|
4. 观察错误提示
|
|
|
|
#### 预期结果
|
|
- ✅ 方法1: 刷新后按钮自动隐藏
|
|
- ✅ 方法2: 显示提示"导入记录已过期,无法查看失败记录"
|
|
- ✅ 方法2: localStorage自动清除
|
|
- ✅ 方法2: 按钮自动隐藏
|
|
|
|
### 测试7: 两种类型导入互不影响
|
|
|
|
#### 步骤
|
|
1. 先导入个人中介(有失败记录)
|
|
2. 再导入实体中介(有失败记录)
|
|
3. 验证两个按钮是否同时显示
|
|
4. 分别点击两个按钮,验证显示的失败记录是否正确
|
|
|
|
#### 预期结果
|
|
- ✅ 两个按钮同时显示
|
|
- ✅ "查看个人导入失败记录"按钮显示个人中介的失败记录
|
|
- ✅ "查看实体导入失败记录"按钮显示实体中介的失败记录
|
|
- ✅ 两个localStorage存储独立,互不影响
|
|
|
|
### 测试8: 导入成功场景
|
|
|
|
#### 步骤
|
|
1. 准备完全正确的Excel文件(所有数据都符合要求)
|
|
2. 导入数据
|
|
3. 等待导入完成
|
|
|
|
#### 预期结果
|
|
- ✅ 显示成功通知:"全部成功!共导入X条数据"
|
|
- ✅ 不显示"查看失败记录"按钮
|
|
- ✅ localStorage中不存储该任务(或hasFailures为false)
|
|
|
|
### 测试9: 网络错误处理
|
|
|
|
#### 步骤
|
|
1. 导入数据(有失败记录)
|
|
2. 打开失败记录对话框
|
|
3. 断开网络或使用浏览器开发者工具模拟离线
|
|
4. 尝试翻页或重新加载失败记录
|
|
|
|
#### 预期结果
|
|
- ✅ 显示友好的错误提示:"网络连接失败,请检查网络"
|
|
- ✅ 不影响页面其他功能的正常使用
|
|
|
|
### 测试10: 服务器错误处理
|
|
|
|
#### 步骤
|
|
1. 导入数据(有失败记录)
|
|
2. 使用浏览器开发者工具模拟服务器错误(500)
|
|
3. 尝试加载失败记录
|
|
|
|
#### 预期结果
|
|
- ✅ 显示错误提示:"服务器错误,请稍后重试"
|
|
|
|
## 边界情况测试
|
|
|
|
### 测试11: 大数据量性能测试
|
|
|
|
#### 步骤
|
|
1. 准备1000条数据,其中100条失败
|
|
2. 导入并等待完成
|
|
3. 打开失败记录对话框
|
|
4. 测试翻页性能
|
|
|
|
#### 预期结果
|
|
- ✅ 导入在合理时间内完成(参考员工模块:1000条约1-2分钟)
|
|
- ✅ 查询失败记录响应时间 < 2秒
|
|
- ✅ 翻页流畅,无卡顿
|
|
|
|
### 测试12: 并发导入
|
|
|
|
#### 步骤
|
|
1. 快速连续执行两次个人中介导入
|
|
2. 观察localStorage中的数据
|
|
3. 观察按钮显示状态
|
|
|
|
#### 预期结果
|
|
- ✅ 只有最近一次导入的数据被保存
|
|
- ✅ 按钮显示状态基于最新的导入结果
|
|
|
|
## 浏览器兼容性测试
|
|
|
|
### 测试13: 不同浏览器测试
|
|
在以下浏览器中重复执行测试1和测试2:
|
|
- ✅ Chrome (推荐)
|
|
- ✅ Firefox
|
|
- ✅ Edge
|
|
- ✅ Safari (Mac)
|
|
|
|
## 回归测试
|
|
|
|
### 测试14: 原有功能不受影响
|
|
验证以下原有功能仍正常工作:
|
|
- ✅ 新增中介(个人/实体)
|
|
- ✅ 编辑中介(个人/实体)
|
|
- ✅ 查看详情
|
|
- ✅ 删除中介
|
|
- ✅ 搜索功能
|
|
- ✅ 导入成功场景
|
|
- ✅ 导入模板下载
|
|
|
|
## 性能测试
|
|
|
|
### 测试15: 内存泄漏检查
|
|
1. 打开浏览器开发者工具 → Performance
|
|
2. 开始录制
|
|
3. 执行多次导入和查看失败记录操作
|
|
4. 停止录制
|
|
5. 检查内存使用情况
|
|
|
|
#### 预期结果
|
|
- ✅ 内存使用稳定,无明显泄漏
|
|
- ✅ 定时器在组件销毁时正确清理
|
|
|
|
## 自动化测试脚本(可选)
|
|
|
|
### 测试16: API接口测试
|
|
使用Postman或curl测试以下接口:
|
|
|
|
```bash
|
|
# 1. 测试个人中介导入失败记录查询
|
|
curl -X GET "http://localhost:8080/ccdi/intermediary/importPersonFailures/{taskId}?pageNum=1&pageSize=10" \
|
|
-H "Authorization: Bearer {token}"
|
|
|
|
# 2. 测试实体中介导入失败记录查询
|
|
curl -X GET "http://localhost:8080/ccdi/intermediary/importEntityFailures/{taskId}?pageNum=1&pageSize=10" \
|
|
-H "Authorization: Bearer {token}"
|
|
|
|
# 3. 测试过期记录查询(应返回404)
|
|
curl -X GET "http://localhost:8080/ccdi/intermediary/importPersonFailures/expired-task-id?pageNum=1&pageSize=10" \
|
|
-H "Authorization: Bearer {token}"
|
|
```
|
|
|
|
## 测试结果记录表
|
|
|
|
| 测试项 | 测试结果 | 问题描述 | 解决方案 | 验证日期 |
|
|
|--------|---------|---------|---------|---------|
|
|
| 测试1: 个人中介导入失败记录查看 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试2: 实体中介导入失败记录查看 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试3: localStorage持久化 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试4: 分页功能 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试5: 清除历史记录 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试6: 记录过期处理 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试7: 两种类型导入互不影响 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试8: 导入成功场景 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试9: 网络错误处理 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试10: 服务器错误处理 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试11: 大数据量性能测试 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试12: 并发导入 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试13: 浏览器兼容性 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试14: 原有功能不受影响 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
| 测试15: 内存泄漏检查 | ⬜ 通过 / ⬜ 失败 | | | |
|
|
|
|
## 已知问题
|
|
|
|
记录测试过程中发现的已知问题:
|
|
|
|
| 问题编号 | 问题描述 | 严重程度 | 状态 | 解决方案 |
|
|
|---------|---------|---------|------|---------|
|
|
| | | | | |
|
|
|
|
## 测试总结
|
|
|
|
### 通过率统计
|
|
- 总测试项: 15项
|
|
- 通过: X项
|
|
- 失败: Y项
|
|
- 通过率: X%
|
|
|
|
### 测试结论
|
|
- ⬜ 测试通过,可以发布
|
|
- ⬜ 存在问题,需要修复后再测试
|
|
|
|
### 测试签名
|
|
- 测试人员: ___________
|
|
- 测试日期: ___________
|
|
- 审核人员: ___________
|
|
- 审核日期: ___________
|