Files
Yb-QaAutomationHub/output/analysis/运单资料文件包下载需求_测试数据.md
xst 901b6741ff test(运单资料文件包下载): 需求文档与 QE Fleet 全流程测试设计产物入库
- 需求 v1.0 定稿(md+docx)与 UI 原型入库;确认单判定 docx 为同文载体、安徽运八并行无冲突
- 全流程产物:分析 + 59 测试点 + 85 用例 + 测试数据 145 组;评审 3 阻断与覆盖缺口 GAP-001 已修复,裁决 PASS_WITH_FIX
- 导出 Excel(云效模型)+ XMind + 版本快照 v1;含 docx 生成脚本与转换校验产物
- .gitignore 排除 node_modules 与 Excel 锁文件
2026-09-09 09:31:55 +08:00

33 KiB
Raw Permalink Blame History

运单资料文件包下载需求 测试数据

本文件由 data-builder Agent 自动生成,为测试用例提供精确数据支持。 生成时间:2026-09-08 数据依据:requirements/运单资料文件包下载需求.md(v1.0 定稿)、output/analysis/运单资料文件包下载需求_分析.md(REQ-001~026)、knowledge_base/00_project/project_profile.md、knowledge_base/01_standards/terminology.md、resources/prototypes/anhuibaba_file_package.html 来源标注说明:需求提取=可直接追溯至需求原文;原型提取=来自 UI 原型演示数据;构造=按需求示例风格构造的结构化数据;需补充=必须从测试环境获取/创建的真实数据,不得编造。 数据ID前缀:ACC-账号 / XLS-上传清单行 / BND-边界值 / STT-状态 / IDC-ID与命名 / ERR-异常 / CMB-组合 / CNC-并发。


自动提取数据

账号数据

数据ID 角色 账号 权限 用途 来源
ACC-001 超级管理员(代行运营人员) super_admin / 951260684NiAn.. 全部权限(含"运单文件包"菜单) 主流程上传/下载/审计日志操作人 项目画像 §1(测试环境真实账号)
ACC-002 运营人员(受控权限) 需补充 仅授权"运单文件包"菜单 权限正向验证(REQ-002:菜单仅授权运营人员) 需求提取(4.1/七章);账号需在平台管理-角色管理创建
ACC-003 非授权角色(对照) 需补充 未授权"运单文件包"菜单 菜单不可见/接口越权验证(敏感证件照片隔离) 构造(需求 4.1 权限控制要求的反向场景)
ACC-004 车队长 13113113113 / 88888888 车队长端权限 后台造数:接单并分派运单,形成"车队长运单" 项目画像 §1
ACC-005 司机 15188888888 / 88888888 司机端权限 后台造数:司机接单/上传装卸货资料,形成可打款运单 项目画像 §1
ACC-006 第二运营账号 需补充 与 ACC-001 等同 多账号并发上传、下载审计日志"操作人"字段区分验证 构造(需求 4.5 审计日志:操作人/时间/任务编号)

上传清单数据(合法行)

模板 3 列:序号(正整数、全文件唯一)/ 货源单号 / 运单号(需求 4.2.1)。下表"系统内三要素"指该运单在系统中挂载的司机档案,用于批次划分(需求 4.4.1)。单号为需求示例风格格式,落地时须映射为测试环境真实运单(见数据缺口 #1)。

数据ID 序号 货源单号 运单号 系统内三要素(司机/身份证/车牌) 用途 来源
XLS-001 1 HY202609001 YD20260901001 张三 / 340102199001011234 / 皖A12345 基准合法行(批次①成员) 需求提取(五章示例);真实单号需补充
XLS-002 2 HY202609002 YD20260901002 李四 / 340102199001015678 / 皖B67890 单运单批次(批次②) 需求提取(五章示例);真实单号需补充
XLS-003 3 HY202609001 YD20260901003 张三 / 340102199001011234 / 皖A12345 与 XLS-001 同批成员 需求提取(五章示例);真实单号需补充
XLS-004 5 / 10 HY202609001 YD20260901004 / YD20260901005 张三 / 340102199001011234 / 皖A12345 非连续、乱序序号合法(最小序号判定与行顺序无关) 构造(依据 4.4.1"非按上传行顺序")
XLS-005 50000 HY202609001 YD20260901006 张三 / 340102199001011234 / 皖A12345 大数值序号合法(序号不要求连续、不与行数挂钩) 构造
XLS-006 1~2000 真实货源单号 2000 个真实运单号 混合(多批次) 行数上限合法文件(2000 行全有效) 构造;运单号需补充
XLS-007 1 真实货源单号 真实运单号 任意有效运单 最小合法清单(1 行) 构造;运单号需补充
XLS-008 — 序号 货源单号 运单号 模板下载产物(仅表头),作为后续所有清单的格式基准 需求提取(REQ-003);原型提取(运单清单模板.xlsx)

上传清单数据(非法行——数据级校验,行级剔除)

预期处理:该行计入失败清单(xlsx,含序号/货源单号/运单号/失败原因),剔除后有效行继续处理,任务记"已完成·部分失败"(需求 4.2.2、确认决议 #7)。

数据ID 构造行(序号/货源单号/运单号) 预期失败原因 关联需求 来源
XLS-101 0 / HY202609001 / YD20260901001 序号非正整数 4.2.2 构造
XLS-102 -1 / HY202609001 / YD20260901001 序号非正整数 4.2.2 构造
XLS-103 1.5 / HY202609001 / YD20260901001 序号非正整数(小数) 4.2.2 构造
XLS-104 abc / HY202609001 / YD20260901001 序号非正整数(非数字文本) 4.2.2 构造
XLS-105 (空)/ HY202609001 / YD20260901001 序号非正整数(为空) 4.2.2 构造
XLS-106 两行序号均为 1(运单号不同) 序号重复(重复行计入失败,首行有效性需验证) 4.2.2、决议#13 构造
XLS-107 1 / (空) / YD20260901001 货源单号为空 4.2.2 构造
XLS-108 1 / HY202609001 / (空) 运单号为空 4.2.2 构造
XLS-109 1 / (空) / (空) 货源单号、运单号均为空(验证失败原因提示合并或并列) 4.2.2 构造
XLS-110 1 / HY202609001 / YD20991231001 运单号在系统中不存在 4.2.2 构造
XLS-111 1 / HY202609009 / 真实运单号 文件中货源单号与该运单实际所属货源不一致 4.2.2、决议#6 构造;真实运单号需补充
XLS-112 两行同一运单号(序号 1、2 不同) 同一运单号在文件中重复(重复行失败,首行保留) 4.2.2 构造
XLS-113 1 / 真实货源单号 / 系统内缺司机信息的运单号 运单缺少司机信息,无法归批 4.2.2、六#5 需补充(依赖环境运单)
XLS-114 1 / 真实货源单号 / 系统内缺车辆信息的运单号 运单缺少车辆信息,无法归批 4.2.2、六#5 需补充(依赖环境运单)
XLS-115 序号 4 与前文重复、且运单号与序号 2 行相同 单行多重非法(验证失败原因取值与优先级) 4.2.2 构造

状态数据

任务状态机(需求 4.3.1)

数据ID 对象 状态值 驱动数据 来源
STT-001 任务 待处理 上传成功但并发占满排队中(配合 CNC-003) 需求提取(4.3.1)
STT-002 任务 处理中 有效行打包进行中,列表可见进度条(成功/失败条数,如原型 186/200) 需求提取(4.3.1/七章);原型提取
STT-003 任务 已完成 全部有效行成功(如 XLS-001~003 三行清单) 需求提取(4.3.1)
STT-004 任务 已完成·部分失败 部分行数据级失败(如 5 行 3 成 2 败,同原型 RW20260907002) 需求提取(4.3.1/决议#7);原型提取
STT-005 任务 失败 系统级错误整体未生成文件包(如 OBS 不可用,见项目画像 §6.1) 需求提取(4.3.1/六#10)
STT-006 任务 已过期(原型展示标签) 文件包超 7 天保留期。注意:需求 4.3.1 状态机不含该状态,原型任务列表却显示"已过期"tag——状态字段值 vs 文件包生命周期标记的实现口径需澄清 原型提取(与需求差异标注)
STT-007 任务 已删除 失败任务支持删除后重新上传(原型"删除"按钮) 需求提取(六#10);原型提取

运单侧驱动状态(决定电子回单/合同数据的有无,术语以 terminology.md 为准)

数据ID 对象 状态值 对文件包的影响 来源
STT-011 运单 已结算/已打款 有支付记录 → 有银行电子回单(术语表:电子回单=运单产生支付记录后银行推送的回单) 需求提取(4.4.3)+术语表
STT-012 运单 运单关闭(司机取消) 无支付记录 → 无电子回单,不阻断,记失败清单 需求提取(六#4)+术语表
STT-013 运单 运输中(未产生支付) 无电子回单,处理同 STT-012 构造(依据 4.4.3 回单口径推断)
STT-014 运单 含承运合同附件 合同目录导出该附件(含承运合同) 需求提取(决议#5)
STT-015 运单 仅含委托合同/框架合同 合同目录不导出(不含委托合同/框架合同),原因记失败清单 需求提取(决议#5)

文件包生命周期

数据ID 对象 状态值 说明 来源
STT-021 文件包 已生成(≤7 天) 可重复下载、幂等不重复生成;zip 不加密(决议#12),下载记审计日志 需求提取(4.5/七章/决议#12)
STT-022 文件包 过期已清理(>7 天) 不可下载,提示重新上传(原型提示文案:"文件包已超过 7 天保留期,请重新上传清单生成") 需求提取(七章);原型提取

ID/编码数据

数据ID 对象 ID值/命名规则 说明 来源
IDC-001 任务编号 RW20260908001(原型格式:RW+日期+3位流水) 系统生成;实际编码规则以实现为准,用例断言不得写死格式 原型提取;实现口径需补充
IDC-002 运单号 YD20260901001 需求示例格式;环境中真实运单号需补充 需求提取(五章示例)
IDC-003 货源单号 HY202609001 需求示例格式;环境中真实货源单号需补充 需求提取(五章示例)
IDC-004 司机身份证号 340102199001011234(张三)、340102199001015678(李四) 需求示例值(非真实档案);批次包名含完整身份证号(决议#3) 需求提取(五章示例)
IDC-005 车牌号 皖A12345 / 皖B67890 需求示例值 需求提取(五章示例)
IDC-006 任务总包名 运单资料_【任务编号】.zip 一层目录 需求提取(4.4.2)
IDC-007 批次包名 【司机姓名】-【身份证号】-【车牌号】 二层目录,含完整 18 位身份证号 需求提取(4.4.2/决议#3)
IDC-008 运单包名 【序号】-【运单号】-【货源单号】;最小序号追加 -含司机及车辆证件 三层目录 需求提取(4.4.2)
IDC-009 子目录名 合同 / 电子回单 / 司机证件 / 车辆证件 四个固定子目录 需求提取(4.4.2/决议#4)
IDC-010 失败清单文件 失败清单_【任务编号】.xlsx(原型:失败清单_RW20260907002.xlsx) 含序号/货源单号/运单号/失败原因 4 列 需求提取(4.3.2);文件名原型提取
IDC-011 模板文件名 运单清单模板.xlsx 模板下载按钮产物 原型提取
IDC-012 源文件名示例 运单清单_合肥仓0908.xlsx 任务列表"源文件名"字段展示值 原型提取

边界值数据

行数边界(数据行数,不含表头行;上限 2000 行,需求 4.2.1/决议#9)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-001 行数 最小值-1 0(仅表头) 需求未明确:按文件级拒绝 or 0 行任务——见数据缺口 #15 构造(边界推导)
BND-002 行数 最小值 1 正常创建任务 需求提取(上限规则的合法侧)
BND-003 行数 最小值+1 2 正常创建任务 构造
BND-004 行数 最大值-1 1999 正常创建任务 构造
BND-005 行数 最大值 2000 正常创建任务(≤2000 合法) 需求提取(4.2.1)
BND-006 行数 最大值+1 2001 文件级整体拒绝,提示行数超限,不创建任务 需求提取(4.2.2)
BND-007 行数 性能基准 1000 1000 单规模任务 30 分钟内完成(REQ-020) 需求提取(七章)

文件大小边界(上限 10MB,需求 4.2.1/决议#9)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-011 文件大小 最大值-1 10MB-1B 合法 构造(按上限推导);10MB=10^6 还是 2^20 字节需确认(缺口 #16)
BND-012 文件大小 最大值 10MB 整 合法("不超过 10MB"含等于) 需求提取(原型 hintbox:"大小不超过 10MB")
BND-013 文件大小 最大值+1 10MB+1B 文件级整体拒绝 需求提取(4.2.2"大小超上限")
BND-014 文件大小 下限 0 字节(空文件) 文件级拒绝(损坏/空文件) 构造
BND-015 文件大小 典型值 12KB(3 行清单) 合法 原型提取

序号数值边界(正整数,需求 4.2.1)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-021 序号 最小值-1 0 行级失败(非正整数) 需求提取(4.2.2)
BND-022 序号 最小值 1 合法,可被判定为批次最小序号 需求提取(4.2.1)
BND-023 序号 最小值+1 2 合法 构造
BND-024 序号 无上限合法值 50000 合法(序号唯一即可,不要求连续) 构造
BND-025 序号 int32 上限 2147483647 合法(若后端用 32 位整型存储则为存储上限) 构造
BND-026 序号 int32 上限+1 2147483648 溢出风险验证:合法或明确报错,不得异常成功/静默截断 构造
BND-027 序号 超 Excel 精度 12345678901234567890(20 位) Excel 15 位精度截断风险:验证读取值与录入值一致性,溢出须失败 构造

文件包保留期边界(7 天,需求七章/决议#10)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-031 保留期 最大值-1 完成后第 6 天 23:59 可下载 构造(按 7 天推导)
BND-032 保留期 最大值 完成后满 7 天整 临界:可下载/进入清理(以"完成时间+7天"为界的实现口径需确认) 需求提取(七章)
BND-033 保留期 最大值+1 第 7 天+1(第 8 天) 过期清理,不可下载,提示重新上传 需求提取(六#9);原型提示文案

单文件下载重试边界(重试 3 次,需求 4.4.4)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-041 重试次数 -/最小 第 1、2 次失败 自动重试,任务继续 需求提取(4.4.4)
BND-042 重试次数 最大值 第 3 次成功 不记失败清单,文件正常入包 需求提取(4.4.4)
BND-043 重试次数 最大值+1 3 次全失败后第 4 次 不再重试,记入失败清单,不阻断其余文件 需求提取(4.4.4)

并发上限边界(1~2,需求六#8)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-051 并发任务数 最小值 1 单任务直接处理 需求提取(六#8)
BND-052 并发任务数 最大值 2 两任务同时处理 需求提取(六#8)
BND-053 并发任务数 最大值+1 3 第 3 个任务排队"待处理",前序完成后自动开始 需求提取(六#8"后台排队")

电子回单数量边界(回单=全部支付记录对应回单,需求 4.4.3)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-061 支付记录数 最小值-1 0 笔(无支付/运单关闭) 不阻断:无"电子回单"子目录,失败清单记原因(原型文案示例:"无电子回单:运单无支付记录") 需求提取(4.4.4/六#4)
BND-062 支付记录数 最小值 1 笔 电子回单目录 1 份回单 术语表+需求 4.4.3
BND-063 支付记录数 最大值+方向 2 笔及以上 多份回单;同名回单自动追加 (1)、(2) 需求提取(4.4.3/4.4.2)

子目录内文件重名边界(原文件名保留、重名追加 (1)(2),需求 4.4.2)

数据ID 字段 边界类型 边界值 预期行为 来源
BND-071 证件文件重名 重名+1 同目录第 2 个同名文件(如 身份证.jpg ×2) 第 2 个命名为 身份证(1).jpg 需求提取(4.4.2)
BND-072 证件文件重名 重名+2 同目录第 3 个同名文件 命名为 身份证(2).jpg 需求提取(4.4.2)
BND-073 证件文件重名 名字已含后缀 档案中同时存在 身份证.jpg 与 身份证(1).jpg,再导出一份 身份证.jpg 追加规则不与既有文件冲突(去重基于实际文件集合) 构造

构造数据

异常数据

文件级异常(整体拒绝,不创建任务,需求 4.2.2)

数据ID 字段/对象 测试值 预期行为 类型 来源
ERR-001 文件格式 .xls(97-2003 老格式) 上传即拒绝,提示仅支持 .xlsx 参数非法 构造
ERR-002 文件格式 .csv / .docx / .jpg 上传即拒绝 参数非法 构造
ERR-003 文件格式 伪造 xlsx:zip/docx 改后缀名为 .xlsx 拒绝(需魔数校验,防仅校验后缀) 伪造格式 构造
ERR-004 列名 缺失一列(仅"序号/运单号"两列) 整体拒绝,提示列名缺失或不符 列名校验 需求提取(4.2.2)
ERR-005 列名 列名不符:序号 (尾空格)、单号、序号(必填)、No. 整体拒绝 列名校验 构造(需求"列名缺失或不符")
ERR-006 列名 全半角/大小写变体:序 号、货源单号 全角空格分隔 整体拒绝(是否 trim 后匹配以实现为准,需验证) 列名校验 构造
ERR-007 列顺序 运单号列在货源单号列之前(列名均正确) 需求未明确:按列名匹配应通过——预期口径需澄清(缺口 #15) 边界探讨 构造
ERR-008 文件完整性 截断的 xlsx / 伪 xlsx(zip 包无 workbook.xml) 整体拒绝,提示文件损坏 文件损坏 需求提取(4.2.2)
ERR-009 多 Sheet Sheet1 合法 + Sheet2 含额外数据 需求未明确(仅读 Sheet1 or 拒绝)——见缺口 #15 边界探讨 构造
ERR-010 表头结构 表头行后含说明行/合并单元格/空行间隔 需求未明确;合并单元格读取行为需验证 边界探讨 构造

数据级行异常(行级失败清单,需求 4.2.2——数据构造见 XLS-101~115,此处为校验维度汇总)

数据ID 字段 测试值 预期行为 类型 来源
ERR-020 序号 0 / -1 / 1.5 / abc / 空(对应 XLS-101~105) 行级失败:序号非正整数 参数非法 需求提取
ERR-021 序号 全文件内重复(对应 XLS-106) 重复行计入失败清单 重复 需求提取(决议#13:全文件唯一)
ERR-022 货源单号/运单号 空串、纯空格 (对应 XLS-107~109) 行级失败:单号为空;验证空格是否等同空值(trim 行为) 参数非法 需求提取+构造
ERR-023 运单号 系统中不存在的单号(对应 XLS-110) 行级失败:运单号在系统中不存在 数据不存在 需求提取
ERR-024 货源单号 与运单实际所属货源不一致(对应 XLS-111) 行级失败:货源单号不一致 数据不一致 需求提取(决议#6)
ERR-025 运单号 文件内重复出现(对应 XLS-112) 重复行计入失败清单 重复 需求提取
ERR-026 归批条件 运单缺司机信息或车辆信息(对应 XLS-113/114) 行级失败:无法归批 数据缺失 需求提取(六#5)
ERR-027 运单号 前后带空格 YD20260901001 (系统存在该运单) 需求未明确:trim 后匹配 or 判不存在——预期需确认 边界探讨 构造

安全异常数据(注入/超长/穿越——文件名类数据 Windows 本地选择文件时受系统限制,需通过接口层直传构造)

数据ID 字段 测试值 预期行为 类型 来源
ERR-030 货源单号(SQL 注入) HY202609001' OR '1'='1 行级失败(查无此单),不得注入生效、不得 500 SQL注入 构造
ERR-031 运单号(SQL 注入) YD20260901001'; DROP TABLE waybill;-- 行级失败,数据库无异常 SQL注入 构造
ERR-032 序号(SQL 注入) 1 OR 1=1 行级失败:序号非正整数 SQL注入 构造
ERR-033 运单号(XSS) <script>alert('xss')</script> 行级失败;失败清单 xlsx 与页面回显转义,不执行脚本 XSS 构造
ERR-034 源文件名(XSS) <img src=x onerror=alert(1)>.xlsx(接口构造) 任务列表"源文件名"展示转义,不触发弹窗 XSS 构造
ERR-035 运单号(超长文本) 256+ 字符连续字符串 行级失败,不崩溃、不截断误判为存在 超长文本 构造
ERR-036 源文件名(超长) 255 字节边界文件名 / 300 字符文件名 正常处理或明确拒绝;列表展示截断(原型 .te 省略样式),下载失败清单文件名不异常 超长文本 构造
ERR-037 源文件名(路径穿越) ..\..\etc\passwd.xlsx、../../webapps/evil.xlsx(接口构造) 不得逃逸上传/下载目录;总包/失败清单命名不受污染 路径穿越 构造
ERR-038 源文件名(特殊字符) 含 # % & { } ~ $ ! ' " @ + = 空格 全角字符 的合法 xlsx 正常上传处理,任务列表/失败清单展示与下载不异常 特殊字符 构造
ERR-039 源文件名(Unicode) emoji 文件名(运单清单🚛.xlsx)、生僻字(𠮷)、繁体 编码/存储/展示正常(UTF-8 兼容) 编码兼容 构造
ERR-040 司机姓名(影响批次包目录名) 系统档案司机姓名含 . - 空格 ·(如 阿依古丽·买买提)、含 Windows 非法字符 `/:*?"<> ` 的档案 批次包命名 【司机姓名】-【身份证号】-【车牌号】 在 Windows/zip 内合法可解压;非法字符需实现侧处理 命名兼容
ERR-041 身份证号(敏感数据合规) 批次包名含完整 18 位身份证号(340102199001011234) 按决议#3/#12:zip 不加密,依赖菜单权限+下载审计日志;验证越权不可达、日志完整 敏感合规 需求提取(决议#3、#12)

组合数据

批次划分核心规则:系统内司机姓名+身份证号+车牌号三要素完全一致归一批(需求 4.4.1)。

数据ID 组合场景 数据构成 预期行为 来源
CMB-001 同司机同车多运单(基准示例) 序号 1、3 均为 张三/340102199001011234/皖A12345 归 1 批;运单包 1-…-含司机及车辆证件(合同+回单+双方证件)、3-…(仅合同+回单) 需求提取(五章示例)
CMB-002 单运单批次 序号 2:李四/340102199001015678/皖B67890 独立 1 批;运单包仍含司机及车辆证件 需求提取(五章/4.4.3)
CMB-003 同司机换车 序号 1:张三+皖A12345;序号 2:张三+皖C88888(身份证相同) 拆分为 2 批 需求提取(4.4.1)
CMB-004 同车换司机 序号 1:张三+皖A12345;序号 2:王五+皖A12345 拆分为 2 批 需求提取(4.4.1)
CMB-005 同名同车不同身份证 序号 1:张三/340102199001011234/皖A12345;序号 2:张三/330102199201012345/皖A12345 拆分为 2 批(身份证号不同即不同批,验证三要素缺一不可) 构造
CMB-006 最小序号运单被剔除(校验失败) 同批序号 1、3、5;序号 1 行运单号不存在 序号 1 记失败清单;重新计算最小序号,证件改挂序号 3,包名 3-…-含司机及车辆证件 需求提取(4.4.4/六#6、决议#8)
CMB-007 跨货源归批 张三+皖A12345 的运单分属 HY202609001、HY202609002 两个货源 仍归 1 批(归批不看货源单号),两个运单包分属不同货源目录名 构造(依据 4.4.1)
CMB-008 乱序/非连续序号 同批序号 10、2、5 最小序号=2;序号 2 运单包含证件,命名按各自序号 需求提取(二章"最小序号运单"定义)
CMB-009 批次内混合成功失败 同批 3 行(序号 1、2、3),序号 1 运单不存在 有效 2 行成批,任务"已完成·部分失败";证件挂有效行最小序号 2 构造(组合 4.2.2+4.4.1)
CMB-010 最小序号运单全部文件下载失败 批次内序号 1 运单的合同/回单/证件 OBS 拉取均 3 次重试失败 需求 4.4.4 条款二"因文件缺失剔除、重算改挂"是否适用需澄清(缺口 #17);验证不阻断其余运单 需求提取(4.4.4)+构造
CMB-011 最小序号运单无电子回单 批次内序号 1 运单无支付记录,序号 2 正常 解读一(不剔除):1 号包仍为最小序号、缺"电子回单"子目录、含证件;解读二(剔除改挂):证件改挂 2 号——两种解读需澄清(缺口 #17) 需求提取(4.4.4 两条款并存)+构造
CMB-012 多批次混合清单 张三批(2 运单)+李四批(1 运单)+王五批(1 运单),共 4 行 总包含 3 个批次包;每批各自最小序号含证件 需求提取(五章示例扩展)
CMB-013 同文件重复上传 同一 xlsx 上传 2 次 生成 2 个独立任务,各自打包、互不合并去重(REQ-023) 需求提取(六#7)
CMB-014 多支付记录运单 1 个运单含 2 笔支付记录,2 份银行电子回单同名 电子回单目录 2 份回单,第 2 份追加 (1)(结合 BND-063/071) 构造(术语表回单定义+4.4.2)
CMB-015 合同口径组合 运单 A 含承运合同;运单 B 仅委托合同;运单 C 含承运+框架合同 A 导出;B 不导出并记失败清单;C 仅导出承运合同 需求提取(决议#5/REQ-013)
CMB-016 无合同运单 运单详情-合同附件为空 合同子目录不生成,不阻断,记失败清单 需求提取(4.4.4)
CMB-017 2000 行同司机单批次 2000 行全部为 张三/340102199001011234/皖A12345 的运单 归 1 批、1 个运单包层级树含 2000 个运单包(仅序号 1 含证件);验证打包性能与目录深度 构造
CMB-018 全部行失败(0 有效行) 2000 行全部非法(或 3 行全非法) 需求未明确 0 有效行时任务终态(已完成·部分失败 or 失败 or 其他)与是否生成空文件包——见缺口 #14 构造(边界推导)

并发数据

数据ID 场景 账号数 并发量 数据构成与说明 来源
CNC-001 单任务处理(并发下限) 1 1 1 个 1000 行清单任务独占处理 需求提取(六#8)
CNC-002 双任务并发(并发上限) 1~2 2 2 个合法清单(如 500 行+500 行)几乎同时上传,两任务同时"处理中" 需求提取(六#8)
CNC-003 三任务排队(超上限) 1 3 第 3 个任务保持"待处理",任一前序完成后自动开始(配合 STT-001/BND-053) 需求提取(六#8)
CNC-004 大小任务混跑 1 2 2000 行任务(XLS-006)+3 行任务(XLS-001~003)并发,小任务不被大任务长时间阻塞 构造
CNC-005 同一任务并发下载 1 2+ 已完成任务并发双击/双会话同时点"下载文件包":幂等,不重复生成文件包,均返回合法 zip 需求提取(4.5/七章幂等)
CNC-006 性能基准 1 1 1000 单规模清单(如 500 批×2 运单混合 CMB-001/002 结构)30 分钟内完成 需求提取(七章 REQ-020)
CNC-007 多账号并发上传 2 2 ACC-001 与 ACC-006 同时上传不同清单,任务互不干扰,上传人字段各自正确 构造
CNC-008 上传按钮防重复提交 1 2+ 同一文件选中后快速重复点击"开始上传并创建任务":仅创建 1 个任务(项目画像 §8.2 必测幂等) 项目画像提取+构造

数据缺口

序号 缺失数据 用途(关联数据ID) 建议来源
1 测试环境真实运单号+货源单号映射(≥20 单:已完成且已打款、含 ≥1 笔支付记录与银行电子回单、运单详情含承运合同附件) XLS-001~003/006/007、CMB-001/002/012 等全部合法行落地 测试环境运单管理/承运结算-电子回单查询现有数据;不足时用 ACC-004/005 走"发货源→接单→卸货→打款"完整流程造数
2 仅含委托合同的运单 1 单(合同附件仅委托合同) CMB-015(合同口径排除验证)、STT-015 测试环境查找或通过合同管理-委托书合同造数
3 含框架合同(或仅框架合同)的运单 1 单 CMB-015("不含框架合同"口径验证) 测试环境合同管理模块查找
4 无支付记录的已关闭运单 1 单(司机取消终止流转) BND-061、STT-012(无回单不阻断记失败清单) 司机端接单后取消,或测试环境查找已关闭运单
5 系统内缺司机信息的运单 1 单、缺车辆信息的运单 1 单 XLS-113/114、ERR-026(无法归批) 承运管理后台造数清空关联字段,或查找历史脏数据
6 含 ≥2 笔支付记录的运单 1 单(多笔货主支付/分笔打款) BND-063、CMB-014(多回单+回单重名 (1) 追加) 对同一运单执行 2 次货主打款+财务打款流程
7 同名同车不同身份证号的司机档案 1 组(两个司机档案:姓名相同、车牌相同、身份证不同) CMB-005(三要素缺一不可验证) 承运管理-司机管理创建两个档案,车辆绑定同一辆车
8 同司机换车历史运单组、同车换司机历史运单组各 1 组 CMB-003/004(拆批验证) 司机档案换绑车辆后各跑 1 单;或两司机先后接同一车辆货源
9 运营人员专用账号(角色仅授权"运单文件包"菜单)+ 无该菜单权限的对照账号 ACC-002/003(REQ-002 权限正向/反向、越权) 平台管理-角色管理新建角色并配置菜单权限
10 第二运营账号(可与 #9 复用) ACC-006、CNC-007(多账号并发上传、审计日志操作人区分) 同 #9
11 OBS 文件失效/证件照片缺失的运单(合同或回单或证件对象被删除、URL 失效) BND-041~043、CMB-010(单文件下载失败重试 3 次场景) 后台直接删除 OBS 对象或篡改档案文件 URL(需开发/运维配合)
12 大文件构造物:2001 行 xlsx、10MB±1B xlsx、截断损坏 xlsx、伪装后缀 xlsx BND-006/011~013/014、ERR-001/003/008 本地 Python(openpyxl) 脚本生成后存入测试数据目录,纳入版本管理之外的 fixtures
13 司机/车辆档案中同名字件照片(同一档案上传 2~3 个同名附件) BND-071~073、CMB-014(重名 (1)(2) 追加) 司机管理-证件照片处重复上传同名文件
14 "0 有效行"任务的预期终态(全部行数据级失败时:已完成·部分失败 / 失败 / 是否生成空包) CMB-018、STT-004/005 边界 需求方/开发确认(需求 4.2.2 未覆盖全失败场景)
15 文件级边界处理预期:0 行文件(仅表头)、多 Sheet、表头后附加行、列顺序颠倒 BND-001、ERR-007/009/010 需求方/开发确认读取与拒绝口径
16 上限口径确认:10MB=10^6 还是 2^20 字节;2000 行是否含表头行;序号与运单号单元格为数值型 vs 文本型时的读取规则 BND-005/011、XLS-006 开发确认实现口径后回填边界值定义
17 "最小序号运单因文件缺失剔除改挂"的触发口径:无合同/无回单(4.4.4 条款一:不阻断仅记清单)是否也触发条款二的剔除改挂 CMB-010/011(证件挂载预期直接冲突,影响 P0 断言) 需求方/开发澄清 4.4.4 两条款关系
18 多机构部署形态确认 + B 机构运营账号与 B 机构有效运单(含证件回单资料) ACC-B01(B 机构运营账号,行内临时记号)、YDB-001(B 机构运单,007/008 机构隔离断言) 开发/运维确认部署形态;多机构环境由平台管理-机构管理造数;若为单机构部署或 super_admin 按设计跨机构可见,007/008 改用绑定 A 机构的非超管账号(ACC-002 补机构绑定)执行