Files
ccdi/doc/test-reports/2025-02-08-intermediary-import-history-cleanup-test-report.md

380 lines
9.8 KiB
Markdown
Raw Normal View History

2026-02-09 00:13:32 +08:00
# 中介库导入失败记录清除功能测试报告
**测试日期:** 2026-02-08
**测试人员:** 待指定
**测试环境:** 开发环境 (localhost)
**功能版本:** v1.0
---
## 一、测试概述
### 1.1 测试目标
验证在用户重新提交导入时,系统能够自动清除上一次导入失败记录的 localStorage 数据和页面按钮显示状态。
### 1.2 测试范围
- ✅ Task 1: ImportDialog.vue 触发清除历史记录事件
- ✅ Task 2: index.vue 添加事件监听
- ✅ Task 3: index.vue 添加事件处理方法
### 1.3 涉及文件
- `ruoyi-ui/src/views/ccdiIntermediary/components/ImportDialog.vue`
- `ruoyi-ui/src/views/ccdiIntermediary/index.vue`
---
## 二、测试环境准备
### 2.1 启动前端开发服务器
```bash
cd ruoyi-ui
npm run dev
```
**预期结果:** 服务器正常运行在 `http://localhost`
### 2.2 登录系统
- 访问: `http://localhost`
- 用户名: `admin`
- 密码: `admin123`
### 2.3 导航到中介库管理页面
点击菜单: **中介库管理****中介黑名单**
---
## 三、详细测试步骤
### 测试场景 1: 个人中介导入失败记录清除
**目的:** 验证重新导入个人中介时能够清除上一次的失败记录
**步骤:**
1. 准备一份包含错误数据的个人中介导入文件
- 文件格式: `.xlsx``.xls`
- 确保至少有 1-2 条数据存在错误(如身份证号格式错误、必填字段缺失等)
2. 点击"导入"按钮
3. 确认导入类型为"个人中介"(默认)
4. 上传准备好的文件
5. 点击"开始导入"按钮
6. 等待导入完成(会有通知提示导入完成)
7. **验证点 1:** 确认页面上显示"查看个人导入失败记录"按钮
- 预期: 按钮显示在工具栏中
8. 点击"查看个人导入失败记录"按钮
9. **验证点 2:** 确认能看到失败记录列表
- 预期: 弹出对话框,显示失败的记录和失败原因
10. 关闭失败记录对话框
11. 再次点击"导入"按钮
12. 选择任意文件(可以是正确的文件,也可以是包含错误的文件)
13. **关键步骤:** 点击"开始导入"按钮
14. **验证点 3:** "查看个人导入失败记录"按钮应该立即消失
- 预期: 按钮在点击"开始导入"后立即从页面上消失
- 验证时机: 在新导入完成前就能看到效果
15. 等待新导入完成
16. **验证点 4:** 如果新导入有失败,确认显示的是新的失败记录
- 预期: 失败记录列表中显示的是新导入的失败数据
**测试结果:** ⬜ 通过 ⬜ 失败
**备注:**
---
### 测试场景 2: 实体中介导入失败记录清除
**目的:** 验证重新导入实体中介时能够清除上一次的失败记录
**步骤:**
1. 准备一份包含错误数据的实体中介导入文件
- 文件格式: `.xlsx``.xls`
- 确保至少有 1-2 条数据存在错误(如统一社会信用代码格式错误、必填字段缺失等)
2. 点击"导入"按钮
3. 切换到"机构中介"标签
4. 上传准备好的文件
5. 点击"开始导入"按钮
6. 等待导入完成
7. **验证点 1:** 确认页面上显示"查看实体导入失败记录"按钮
8. 点击"查看实体导入失败记录"按钮
9. **验证点 2:** 确认能看到失败记录列表
10. 关闭失败记录对话框
11. 再次点击"导入"按钮,选择任意文件
12. **关键步骤:** 点击"开始导入"按钮
13. **验证点 3:** "查看实体导入失败记录"按钮应该立即消失
**测试结果:** ⬜ 通过 ⬜ 失败
**备注:**
---
### 测试场景 3: 两种类型互不影响
**目的:** 验证个人和实体中介的导入记录清除操作互不干扰
**步骤:**
1. 导入个人中介数据(确保有失败记录)
- 点击"导入" → 选择"个人中介" → 上传文件 → 点击"开始导入"
- 等待导入完成
2. **验证点 1:** 确认显示"查看个人导入失败记录"按钮
3. 导入实体中介数据(确保有失败记录)
- 点击"导入" → 选择"机构中介" → 上传文件 → 点击"开始导入"
- 等待导入完成
4. **验证点 2:** 确认两个按钮都显示
- 预期: "查看个人导入失败记录"和"查看实体导入失败记录"按钮同时显示
5. 重新导入个人中介
- 点击"导入" → 选择"个人中介" → 选择文件 → 点击"开始导入"
6. **验证点 3:** 只清除个人中介的失败记录按钮
- 预期: "查看个人导入失败记录"按钮消失
- 预期: "查看实体导入失败记录"按钮仍然显示
7. 重新导入实体中介
- 点击"导入" → 选择"机构中介" → 选择文件 → 点击"开始导入"
8. **验证点 4:** 只清除实体中介的失败记录按钮
- 预期: "查看实体导入失败记录"按钮消失
- 预期: "查看个人导入失败记录"按钮不会重新出现(因为已在步骤5中清除)
**测试结果:** ⬜ 通过 ⬜ 失败
**备注:**
---
### 测试场景 4: 边界情况测试
**目的:** 验证特殊情况下功能的稳定性
**步骤:**
1. **子场景 4.1: 导入全部成功,无失败记录**
- 准备一份完全正确的导入文件
- 执行导入操作
- **验证点:** 确认不显示失败记录按钮
- 再次导入其他数据
- **验证点:** 确认不影响任何状态,页面正常工作
2. **子场景 4.2: localStorage 数据过期**
- 导入数据(有失败),确认按钮显示
- 打开浏览器开发者工具(F12)
- 进入 Application → Local Storage
- 手动修改 `intermediary_person_import_last_task``saveTime` 为过期时间(如7天前)
- 刷新页面
- **验证点:** 确认按钮不显示(数据已过期)
- 重新导入数据
- **验证点:** 导入正常进行,不受localStorage过期影响
3. **子场景 4.3: 浏览器控制台无错误**
- 打开浏览器开发者工具(F12)
- 切换到 Console 标签
- 执行所有导入操作
- **验证点:** 确认 Console 没有错误日志
4. **子场景 4.4: localStorage 数据验证**
- 执行导入操作(有失败)
- 打开开发者工具 → Application → Local Storage
- **验证点 1:** 确认存在 `intermediary_person_import_last_task` 数据
- 重新导入
- **验证点 2:** 确认点击"开始导入"后,localStorage 中的对应数据被清除
- 刷新页面
- **验证点 3:** 确认按钮不再显示
**测试结果:** ⬜ 通过 ⬜ 失败
**备注:**
---
### 测试场景 5: 快速连续点击
**目的:** 验证防止重复提交的机制
**步骤:**
1. 导入数据(有失败),确认按钮显示
2. 打开导入对话框
3. 选择任意文件
4. **关键步骤:** 快速连续多次点击"开始导入"按钮(如双击或三击)
5. **验证点:** 按钮被禁用
- 预期: 按钮变为灰色,显示"导入中..."
- 预期: 不会重复触发多次上传
- 预期: `isUploading` 状态为 `true`,阻止重复提交
6. 等待导入完成
7. **验证点:** 只执行了一次导入操作
- 预期: 只有一个通知提示
- 预期: 失败记录列表只有一组数据
**测试结果:** ⬜ 通过 ⬜ 失败
**备注:**
---
### 测试场景 6: 刷新页面后状态保持
**目的:** 验证 localStorage 的持久化功能
**步骤:**
1. 导入个人中介数据(有失败)
2. **验证点 1:** 确认显示失败记录按钮
3. 刷新浏览器页面(F5)
4. **验证点 2:** 确认按钮仍然显示
- 预期: localStorage 数据持久化,状态保持
5. 打开导入对话框,选择文件,点击"开始导入"
6. **验证点 3:** 按钮立即消失
- 预期: 即使刷新页面后,清除功能仍然正常工作
**测试结果:** ⬜ 通过 ⬜ 失败
**备注:**
---
## 四、测试数据准备
### 4.1 个人中介导入文件模板
**必需字段:**
- 姓名(name)
- 证件号码(personId)
- 人员类型(personType)
- 性别(gender)
- 手机号码(mobile)
**错误数据示例:**
| 姓名 | 证件号码 | 人员类型 | 性别 | 手机号码 |
|------|----------|----------|------|----------|
| 张三 | 12345 | 中介人员 | 男 | 13800138000 |
| 李四 | | 评估人员 | 女 | 13900139000 |
| 王五 | 110101199001011234 | | 男 | 13700137000 |
### 4.2 实体中介导入文件模板
**必需字段:**
- 机构名称(enterpriseName)
- 统一社会信用代码(socialCreditCode)
- 主体类型(enterpriseType)
- 企业性质(enterpriseNature)
- 法定代表人(legalRepresentative)
**错误数据示例:**
| 机构名称 | 统一社会信用代码 | 主体类型 | 企业性质 | 法定代表人 |
|----------|------------------|----------|----------|------------|
| 测试公司1 | ABCDEFGHIJKL | 律师事务所 | 个人独资 | 张三 |
| 测试公司2 | | 会计师事务所 | 合伙 | 李四 |
| 测试公司3 | 91110000123456789X | | | 王五 |
---
## 五、已知问题
**无**
---
## 六、测试总结
### 6.1 测试覆盖率
- [x] 个人中介导入失败记录清除
- [x] 实体中介导入失败记录清除
- [x] 两种类型互不影响
- [x] 边界情况处理
- [x] 快速连续点击防护
- [x] 页面刷新后状态保持
### 6.2 测试结果统计
- 总测试场景: 6 个
- 通过场景: __
- 失败场景: __
- 阻塞问题: __
### 6.3 整体评估
**通过** - 所有测试场景通过,功能符合预期
**有条件通过** - 大部分测试通过,存在非阻塞问题
**不通过** - 存在关键功能缺陷,需要修复
### 6.4 建议
- (根据测试结果填写建议)
---
## 七、附录
### 7.1 相关代码提交
- Task 1: commit 1216ba9 "feat: 导入时触发清除历史记录事件"
- Task 2: commit 51dc466 "feat: 监听清除导入历史记录事件"
- Task 3: commit b35d05a "feat: 实现清除导入历史记录方法"
### 7.2 相关文档
- 实施计划: `doc/plans/2025-02-08-intermediary-import-history-cleanup.md`
- 需求文档: 待补充
### 7.3 联系方式
- 开发人员: Claude (AI Assistant)
- 测试负责人: 待指定
- 项目经理: 待指定
---
**测试报告版本:** v1.0
**最后更新:** 2026-02-08