# 中介库导入失败记录查看功能 - 测试清单 ## 测试环境 - 前端: 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% ### 测试结论 - ⬜ 测试通过,可以发布 - ⬜ 存在问题,需要修复后再测试 ### 测试签名 - 测试人员: ___________ - 测试日期: ___________ - 审核人员: ___________ - 审核日期: ___________