Files
ccdi/doc/test-scripts/SUMMARY.md

7.2 KiB

导入重复检测功能测试 - 完成总结

已创建的文件

1. 测试脚本

D:\ccdi\ccdi\doc\test-scripts\test_import_duplicate_detection.py
  • 完整的Python自动化测试脚本
  • 包含4个测试场景的完整实现
  • 支持自动生成测试数据、执行测试、生成报告
  • 约600行代码,注释详细

2. 测试用例文档

D:\ccdi\ccdi\doc\test-scripts\test_import_duplicate_detection_cases.md
  • 详细的测试用例说明
  • 包含4个测试场景的完整描述
  • 每个场景包含:测试目的、测试数据、测试步骤、预期结果

3. 使用说明文档

D:\ccdi\ccdi\doc\test-scripts\README_TEST.md
  • 测试使用指南
  • 环境准备、运行步骤、结果查看
  • 常见问题解答

4. 测试文档索引

D:\ccdi\ccdi\doc\test-scripts\INDEX.md
  • 所有测试文档的总索引
  • 快速导航指南
  • 功能概述和API说明

5. 测试数据生成工具

D:\ccdi\ccdi\doc\test-scripts\generate_test_data.py
  • 单独的测试数据生成工具
  • 可以只生成测试数据而不运行测试

6. Windows批处理脚本

D:\ccdi\ccdi\run_duplicate_test.bat
  • Windows下一键运行测试
  • 自动检查环境、安装依赖

7. Linux/Mac脚本

D:\ccdi\ccdi\run_duplicate_test.sh
  • Linux/Mac下一键运行测试
  • 自动检查环境、安装依赖

8. 测试数据说明

D:\ccdi\ccdi\doc\test-data\README.md
  • 测试数据目录说明
  • 数据结构和用途说明

9. 测试报告说明

D:\ccdi\ccdi\doc\test-reports\README.md
  • 测试报告格式说明
  • 报告查看和分析方法

测试场景覆盖

场景1: 采购交易 - Excel内采购事项ID重复

  • 目的: 验证采购交易导入时Excel内采购事项ID重复的检测
  • 数据: 3条相同采购事项ID的记录
  • 预期: 第1条成功,第2、3条失败
  • 验证点:
    • 成功数量为1
    • 失败数量为2
    • 错误消息包含"在导入文件中重复"

场景2: 员工信息 - Excel内柜员号重复

  • 目的: 验证员工信息导入时Excel内柜员号重复的检测
  • 数据: 3条相同柜员号的记录
  • 预期: 第1条成功,第2、3条失败
  • 验证点:
    • 成功数量为1
    • 失败数量为2
    • 错误消息包含"柜员号"和"在导入文件中重复"

场景3: 员工信息 - Excel内身份证号重复

  • 目的: 验证员工信息导入时Excel内身份证号重复的检测
  • 数据: 3条相同身份证号的记录
  • 预期: 第1条成功,第2、3条失败
  • 验证点:
    • 成功数量为1
    • 失败数量为2
    • 错误消息包含"身份证号"和"在导入文件中重复"

场景4: 混合重复(数据库+Excel)

  • 目的: 验证数据库已存在记录和Excel内重复记录的混合场景
  • 数据: 4条记录,包含数据库重复和Excel内重复
  • 预期: 第1条失败(数据库重复),第2条成功,第3条失败(Excel内重复),第4条成功
  • 验证点:
    • 成功数量为2
    • 失败数量为2
    • 能够区分数据库重复和Excel内重复

测试功能特性

自动化测试

  • 自动生成测试数据Excel文件
  • 自动上传文件到服务器
  • 自动轮询查询导入状态
  • 自动验证测试结果
  • 自动生成JSON格式测试报告

测试报告

  • JSON格式,易于解析
  • 包含详细的测试结果
  • 记录测试耗时
  • 区分预期结果和实际结果
  • 记录失败原因

错误处理

  • 网络连接失败处理
  • 登录失败处理
  • 上传失败处理
  • 超时处理
  • 异常捕获和日志记录

测试执行方式

方式1: 批处理脚本(推荐)

# Windows
双击 run_duplicate_test.bat

# Linux/Mac
bash run_duplicate_test.sh

方式2: Python命令

python doc/test-scripts/test_import_duplicate_detection.py

方式3: IDE运行

  • 使用PyCharm/VS Code打开测试脚本
  • 直接运行

测试前提条件

必需组件

  • Python 3.7+
  • requests库
  • openpyxl库
  • 后端服务运行在 http://localhost:8080
  • 测试账号: admin / admin123

数据库准备

  • ⚠️ 场景4需要预先在数据库中插入测试数据
  • 其他场景不需要预先准备数据

测试输出

控制台输出

================================================================================
导入文件内部主键重复检测功能测试
================================================================================
测试时间: 2026-02-09 15:30:45
测试环境: http://localhost:8080
================================================================================

[1/2] 登录系统...
✓ 登录成功, Token: eyJhbGciOiJIUzUxMiJ9...

[2/2] 运行测试用例...
--------------------------------------------------------------------------------

测试用例 1/4: 采购交易 - Excel内采购事项ID重复
描述: 测试导入3条采购事项ID相同的记录,预期第1条成功,第2、3条失败
--------------------------------------------------------------------------------
  ✓ 生成测试数据: D:\ccdi\ccdi\doc\test-data\temp\purchase_duplicate.xlsx
  ✓ 上传成功, TaskID: purchase-import-1234567890
  ✓ 导入状态: {...}
  ✓ 测试通过

...

JSON报告

{
  "test_time": "2026-02-09 15:30:45",
  "environment": "http://localhost:8080",
  "total_count": 4,
  "passed_count": 4,
  "failed_count": 0,
  "pass_rate": "100.0%",
  "results": [...]
}

测试验证点

功能验证

  • Excel内重复主键检测正确
  • 只有第1条重复记录被导入
  • 后续重复记录被跳过
  • 错误消息格式正确
  • 能够区分数据库重复和Excel内重复

数据验证

  • 成功数量符合预期
  • 失败数量符合预期
  • 失败记录内容正确
  • 错误消息内容正确

异常验证

  • 网络异常处理正确
  • 登录失败处理正确
  • 权限不足处理正确
  • 数据格式错误处理正确

代码质量

代码结构

  • 采用面向对象设计
  • 类职责清晰
  • 代码注释详细
  • 变量命名规范

可维护性

  • 易于添加新测试场景
  • 易于修改测试逻辑
  • 易于扩展测试功能
  • 代码复用性好

可读性

  • 代码格式统一
  • 注释清晰完整
  • 变量命名语义化
  • 逻辑流程清晰

后续工作建议

1. 执行测试

  • 运行完整的测试套件
  • 验证所有测试场景通过
  • 生成测试报告

2. 数据准备

  • 在数据库中插入场景4需要的预置数据
  • 确保测试账号有正确的权限
  • 清理之前的测试数据

3. 测试执行

  • 按照测试脚本执行测试
  • 记录测试结果
  • 分析失败原因

4. 问题修复

  • 如果测试失败,查看错误消息
  • 检查后端实现代码
  • 修复问题后重新测试

5. 文档完善

  • 根据实际测试结果更新文档
  • 添加更多测试场景
  • 完善错误处理

联系方式

如有问题或建议,请参考:

  • 测试用例文档: doc/test-scripts/test_import_duplicate_detection_cases.md
  • 使用说明文档: doc/test-scripts/README_TEST.md
  • 文档索引: doc/test-scripts/INDEX.md

创建时间: 2026-02-09 版本: v1.0 状态: 完成