380 lines
9.8 KiB
Markdown
380 lines
9.8 KiB
Markdown
|
|
# 中介库导入失败记录清除功能测试报告
|
||
|
|
|
||
|
|
**测试日期:** 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
|