Files
ccdi/docs/reports/implementation/2026-04-22-bidding-import-browser-test-and-agents-update-implementation.md
2026-04-22 16:38:52 +08:00

3.6 KiB

2026-04-22 招投标导入页面测试与 AGENTS 规范补充实施记录

1. 本次变更

  • 更新 AGENTS.md,补充“导入页面测试规范”
  • 基于真实页面下载模板,生成招投标信息维护导入测试样本并完成页面实测

2. 文档落点确认

  • 规范更新文件:/Users/wkc/Desktop/ccdi/ccdi/AGENTS.md
  • 实施记录文件:/Users/wkc/Desktop/ccdi/ccdi/docs/reports/implementation/2026-04-22-bidding-import-browser-test-and-agents-update-implementation.md

3. 页面测试方式沉淀

  • 先启动真实前端页面并进入 招投标信息维护 页面,在页面内下载当前导入模板
  • 基于页面下载的双 Sheet 模板生成测试文件,不手工重建表头
  • 将测试样本按校验维度拆分成多个工作簿,避免多个互斥错误互相覆盖
  • 每个测试样本都通过页面“导入”弹窗上传,不走原型页、不绕过页面直接调用导入服务完成主验证
  • 每次上传后同时核对页面提示、导入状态、失败记录弹窗、列表总数变化,以及后端日志中的导入任务结果
  • 对成功导入的测试数据在测试结束前执行删除回滚,保证列表数据恢复到测试前状态

4. 本次覆盖的导入场景

  • 空模板上传
  • 主信息必填校验
  • 主信息工号/金额格式校验
  • 主从关系异常:已存在采购事项 ID、供应商有数据但主信息缺失、主信息重复、供应商 Sheet 中采购事项 ID 为空
  • 供应商校验:多条中标、重复供应商、供应商名称为空、名称超长、联系人超长、银行账户超长、联系电话非法、统一信用代码非法、是否中标枚举非法
  • 缺少供应商 Sheet
  • 成功导入
  • 成功导入与异常主信息混合
  • 页面内查看导入失败记录

5. 关键测试结论

  • 主信息必填、主信息格式/金额、主从关系异常、供应商校验等页面导入链路均已通过真实页面验证
  • “重复供应商”场景单独补充了专用样本后已命中 采购事项ID[...]存在重复供应商
  • “缺少供应商 Sheet” 当前实现不会报错,而是允许主信息成功导入,导入记录中供应商信息为空
  • “成功导入 + 空采购事项ID主信息” 场景中,后端按 总数 1 / 成功 1 / 失败 0 处理,说明空采购事项 ID 的主信息行被实现层静默过滤,未触发 采购事项ID不能为空
  • 因此,采购事项ID不能为空 这条校验目前无法通过真实页面导入样本直接命中,需要结合实现修正后再补测

6. 生成的测试文件

  • 测试文件统一放在 output/spreadsheet/output/playwright/ 下,未纳入 git
  • 本次使用的样本包括:
  • bidding_import_empty_template.xlsx
  • bidding_import_main_required.xlsx
  • bidding_import_main_numeric.xlsx
  • bidding_import_structure.xlsx
  • bidding_import_supplier_validation.xlsx
  • bidding_import_supplier_duplicate.xlsx
  • bidding_import_missing_supplier_sheet.xlsx
  • bidding_import_success_and_gap.xlsx

7. 环境与清理

  • 页面测试期间使用真实浏览器会话完成导入、失败记录查看与状态确认
  • 本轮成功写入的测试数据 IMPCOV20260422154511SUP02IMPCOV20260422154511MS01IMPCOV20260422154511OK01 已全部删除
  • 页面本地导入任务缓存已清理
  • 刷新真实页面后,列表总数已恢复到 2004

8. 风险备注

  • 测试过程中后端日志出现过 Redis 超时与应用重启记录,个别导入提交存在等待时间偏长现象
  • 虽然最终所有目标场景都已完成验证,但后续若继续执行批量页面导入测试,建议优先关注 Redis 连接稳定性