# 运单资料文件包下载需求 测试点 > 生成时间: 2026-09-08 > 依据: output/analysis/运单资料文件包下载需求_分析.md(26 条 REQ)、_风险评估.md(RISK-AVAILABILITY P1 等 5 项)、_测试策略.md、_关联与冲突.md(无冲突,与安徽运八需求并行) > 知识库: project_profile.md、common_missed_scenes.md、historical_defects.md、definition_of_done.md、terminology.md > 原型: resources/prototypes/anhuibaba_file_package.html > 术语: 批次 / 文件包(批次包)/ 运单包 / 最小序号运单 / 电子回单 / 失败清单 / 审计日志 / 幂等性,均与 knowledge_base/01_standards/terminology.md 一致 ## 测试点概览 - 总测试点数: 59 - P0: 25 / P1: 26 / P2: 6 / P3: 2 - 来源分布: [需求] 47, [漏测清单] 14, [风险矩阵] 7, [项目画像] 7, [历史缺陷] 4, [最佳实践] 3, [冲突修订] 1([营销规则] 不适用:本项目无营销域,见"不适用说明") ### 覆盖维度对照(12/12 全覆盖) | 维度 | 对应测试点 | | :--- | :--- | | 主流程 | TP-M-001、TP-U-001/002、TP-T-001、TP-P-001/003/004、TP-D-001 | | 异常流程 | TP-U-003/004/005、TP-T-007、TP-P-008、TP-N-006、TP-N-003 | | 边界条件 | TP-U-006/007、TP-P-011/012、TP-N-004 | | 数据校验 | TP-U-008~016、TP-T-004/006、TP-P-005/006/010 | | 状态流转 | TP-T-001/002/003/007、TP-D-004、TP-N-004 | | 权限控制 | TP-M-002/003/004/005、TP-N-005 | | 并发幂等 | TP-D-002、TP-U-018、TP-N-002/003、TP-P-009 | | 弱网超时 | TP-D-006、TP-N-003、TP-U-017 | | 规则组合 | TP-P-002/007、TP-U-015、TP-T-002 | | 历史缺陷防御 | TP-P-012/013、TP-D-004、TP-N-003 | | 跨需求冲突防御 | TP-N-008(关联与冲突报告未识别冲突条目,落"并行不干扰"回归验证点) | | 项目高风险场景 | TP-N-005/006、TP-M-005、TP-U-007(OBS 依赖/敏感合规/机构隔离/Excel 边界) | ### 不适用说明(显式标注,非静默省略) - [营销规则] 维度不适用:项目画像 §4 明确本项目无营销活动/优惠券/积分体系,本需求亦无营销规则。 - [历史缺陷] BUG-202607-04(省份代码硬编码)不适用:本需求为资料导出打包,无监管上报省份字段;其余 3 条历史缺陷(阶段依赖链前后端双重校验、重试幂等、跨模块数据溯源)均已转化为 TP-D-004、TP-N-003、TP-P-012/013。 ### 待确认项汇总(评审时确认,确认后重点回归) | 编号 | 待确认问题 | 影响测试点 | | :--- | :--- | :--- | | Q1 | "查看结构/文件包结构预览"与"失败任务删除"仅见于原型,需求正文未定义 | TP-T-008 | | Q2 | 仅表头 0 数据行的空清单如何处理(拒绝 or 创建空任务) | TP-U-006 | | Q3 | 2000 行上限口径是否含表头行(本文件按"数据行 2000"设计) | TP-U-006 | | Q4 | 打包期间源数据变更(新回单/换证件照/运单关闭)按任务开始时刻快照还是实时拉取 | TP-P-013 | | Q5 | 过期任务的列表展示形态(原型有"已过期"标签,需求状态机仅 5 态) | TP-N-004 | | Q6 | 失败清单下载是否同样记审计日志 | TP-D-003 | --- ## 模块 TP-M 菜单与权限(5 个测试点) ### TP-M-001: 菜单入口与页面骨架 - 优先级: P0 - 类型: 功能测试 - 覆盖维度: 主流程 - 来源: [需求] - 描述: 对应 REQ-001。运八平台端"运单管理"相关模块下出现独立菜单"运单文件包",页面自上而下为上传任务入口(模板下载 + 上传按钮)与任务列表。 - 关键验证点: 菜单名称逐字为"运单文件包"且挂载位置正确;页面含"下载模板""上传清单"按钮与任务列表表格;面包屑/菜单高亮正确;上传入口在前、任务列表在后。 ### TP-M-002: 运营人员可见可操作 - 优先级: P0 - 类型: 权限测试 - 覆盖维度: 权限控制 - 来源: [需求] - 描述: 对应 REQ-002。被授权的运营人员(super_admin 验证)登录后可见菜单并可完成上传、查看进度、下载文件包全链路。 - 关键验证点: 运营角色菜单可见;上传/下载操作不被拦截;页面内无其他角色越权入口;权限分配由平台管理员在角色管理完成(项目画像 §2.2)。 ### TP-M-003: 非授权角色不可见且 URL 直达被拦截 - 优先级: P0 - 类型: 权限测试 - 覆盖维度: 权限控制 - 来源: [需求][漏测清单] - 描述: 对应 REQ-002。财务、客服、车队长、司机等非授权角色登录平台端不可见该菜单;未登录或低权限账号直接输入页面 URL 访问被拦截跳转登录/403。 - 关键验证点: 各非授权角色侧边栏无"运单文件包"入口;直接 URL 访问返回 403 或跳登录页(漏测清单 §3 未登录访问);页面不渲染任务列表数据。 ### TP-M-004: 接口层越权防御 - 优先级: P1 - 类型: 安全测试 - 覆盖维度: 权限控制 - 来源: [项目画像][风险矩阵] - 描述: 对应 REQ-002,风险矩阵 RISK-COMPLIANCE(P2 合规)缓解。前端隐藏菜单不够,服务端接口必须独立鉴权——无菜单权限账号直接调用任务列表/上传/下载 API 应被拒绝(对应项目画像必测异常"越权操作")。 - 关键验证点: 无权限会话调用上传/列表/下载接口返回 401/403;携带他人任务编号调用下载接口被数据权限拦截;接口不因缺少前端入口而放行。 ### TP-M-005: 机构数据隔离 - 优先级: P2 - 类型: 安全测试 - 覆盖维度: 权限控制 - 来源: [项目画像] - 描述: 对应 REQ-002/REQ-026。项目画像要求权限类用例必须验证机构数据隔离:多机构部署下,任务列表、上传任务、下载文件包均不得跨机构泄露运单与证件资料。 - 关键验证点: A 机构运营账号不可见 B 机构任务;上传清单含 B 机构运单号时按"运单号不存在/无权限"类行级失败处理(不导出);下载 zip 内不含他机构运单资料。 --- ## 模块 TP-U 上传与校验(18 个测试点) ### TP-U-001: 模板下载 - 优先级: P0 - 类型: 功能测试 - 覆盖维度: 主流程 - 来源: [需求] - 描述: 对应 REQ-003。上传入口提供模板下载,模板为 .xlsx 且仅含三列:序号、货源单号、运单号。 - 关键验证点: 下载得到合法 .xlsx;列名与需求 4.2.1 逐字一致;用下载模板填写 1 条合法数据可直接上传成功(模板自洽);模板内含填写说明不参与数据解析。 ### TP-U-002: 正常上传创建任务(正向成功链路) - 优先级: P0 - 类型: 功能测试 - 覆盖维度: 主流程 - 来源: [需求][漏测清单] - 描述: 对应 REQ-001/REQ-004/REQ-005。合法清单上传后系统创建打包任务并开始异步处理——不能只测"校验失败",正向成功链路必须覆盖。 - 关键验证点: 上传成功提示含任务编号;任务列表置顶新增一行(待处理→处理中);源文件名/上传人/上传时间正确;总行数与清单数据行数一致;"全部任务"统计卡片计数 +1(原型)。 ### TP-U-003: 非 xlsx 格式整体拒绝 - 优先级: P0 - 类型: 异常测试 - 覆盖维度: 异常流程 - 来源: [需求] - 描述: 对应 REQ-005。上传 .docx/.xls/.csv/.zip/.png 或将 zip 改后缀为 .xlsx 的文件,上传即整体拒绝。 - 关键验证点: 提示具体原因(格式不支持);不创建任务(列表无新增行);文件选择器与后端双重限制(前端过滤 + 后端再校验,防绕过前端直传 API)。 ### TP-U-004: 列名缺失或不符整体拒绝 - 优先级: P0 - 类型: 异常测试 - 覆盖维度: 异常流程 - 来源: [需求] - 描述: 对应 REQ-005。表头缺列、列名错别字、多出未知列均整体拒绝;但三列名正确仅顺序不同时应允许(需求约束的是列名而非列顺序)。 - 关键验证点: 缺"序号"列拒绝、缺"货源单号"列拒绝、列名拼写错误拒绝、多余列拒绝;列顺序打乱(列名齐全)上传成功;提示信息指明具体列问题。 ### TP-U-005: 文件损坏整体拒绝 - 优先级: P1 - 类型: 异常测试 - 覆盖维度: 异常流程 - 来源: [需求] - 描述: 对应 REQ-005。上传截断文件、伪造 xlsx 头的非法文件、加密带密码的 xlsx,上传即拒绝且服务端不抛 500 白屏。 - 关键验证点: 提示"文件损坏/无法读取"类明确原因;不创建任务;后台无残留半任务;加密 xlsx 给出可理解提示(非堆栈报错)。 ### TP-U-006: 行数边界(2000/2001/空清单) - 优先级: P1 - 类型: 边界测试 - 覆盖维度: 边界条件 - 来源: [需求] - 描述: 对应 REQ-004(确认决议 #9)。单文件数据行 2000 行成功、2001 行整体拒绝。 - 关键验证点: 恰好 2000 行有效清单上传成功且成功数=2000;2001 行拒绝且不创建任务;空清单(仅表头 0 数据行)的处理——⚠️ 待确认 Q2:建议拒绝并提示"清单无数据行",不得生成空 zip;⚠️ 待确认 Q3:行数口径是否含表头。 ### TP-U-007: 文件大小边界(10MB 临界) - 优先级: P1 - 类型: 边界测试 - 覆盖维度: 边界条件 - 来源: [需求][项目画像] - 描述: 对应 REQ-004(确认决议 #9)。项目画像 §8.3 提示本项目 Excel 处理有大数据量惯例,需验证行数与大小两条限制相互独立生效。 - 关键验证点: 恰好 10MB(临界值)上传成功、10MB+1B 拒绝;行数少但体积超 10MB(如嵌大图/长文本)被大小限制拒绝;行数超限但体积小于 10MB 被行数限制拒绝;两类超限提示原因可区分。 ### TP-U-008: 序号非正整数行级失败 - 优先级: P0 - 类型: 数据校验 - 覆盖维度: 数据校验 - 来源: [需求] - 描述: 对应 REQ-006。序号为 0、负数、小数(1.5)、文本(abc)、空、全角数字的行计入失败清单,其余行正常处理。 - 关键验证点: 各非法序号行进入失败清单且失败原因准确;有效行不受影响;任务记"已完成·部分失败";失败数统计准确。 ### TP-U-009: 序号重复行级失败(全文件唯一) - 优先级: P0 - 类型: 数据校验 - 覆盖维度: 数据校验 - 来源: [需求][最佳实践] - 描述: 对应 REQ-006(确认决议 #13:序号全文件唯一)。同一序号出现多行时,重复行计入失败清单;重复序号跨批次出现同样生效(唯一性范围是全文件而非批次内)。 - 关键验证点: 重复行失败原因明确;保留行与剔除行的判定规则稳定(如首现行保留);序号决定"最小序号运单"判定,重复序号被剔除后不得影响证件挂载(联动 TP-P-007)。 ### TP-U-010: 货源单号/运单号为空行级失败 - 优先级: P0 - 类型: 数据校验 - 覆盖维度: 数据校验 - 来源: [需求] - 描述: 对应 REQ-006。货源单号或运单号为空串、纯空格、Excel 空单元格的行计入失败清单。 - 关键验证点: 空串与纯空格均判为空;失败原因区分"货源单号为空"/"运单号为空";仅表头行不误判为数据行。 ### TP-U-011: 运单号在系统中不存在行级失败 - 优先级: P0 - 类型: 数据校验 - 覆盖维度: 数据校验 - 来源: [需求] - 描述: 对应 REQ-006。运单号在系统无匹配记录的行计入失败清单(原型失败原因文案:"运单号在系统中不存在")。 - 关键验证点: 不存在运单号失败且原因准确;运单号大小写/前后空格的匹配口径一致(同一规则应用于存在性校验与实际导出);一行失败不影响同文件其他有效行。 ### TP-U-012: 货源单号与运单实际所属货源不一致行级失败 - 优先级: P0 - 类型: 数据校验 - 覆盖维度: 数据校验 - 来源: [需求] - 描述: 对应 REQ-006(确认决议 #6)。运单号存在但货源单号与该运单在系统中实际所属货源不一致,该行失败;运单号+其正确货源单号配对则成功(正向配对验证)。 - 关键验证点: 错配行失败原因准确(原型文案:"文件中货源单号与该运单实际所属货源不一致");正确配对行正常打包;同一运单在不同货源下的归属以系统数据为准,不因清单填写顺序改变。 ### TP-U-013: 运单号文件内重复行级失败 - 优先级: P0 - 类型: 数据校验 - 覆盖维度: 数据校验 - 来源: [需求] - 描述: 对应 REQ-006。同一运单号在文件内出现两行,重复行计入失败清单,首次出现行保留处理,防止同一运单被重复打包。 - 关键验证点: 首现行打包且仅出现一次;重复行进失败清单且原因明确(区别于序号重复的原因文案);两行序号不同的重复运单不产生两个运单包。 ### TP-U-014: 运单缺司机或车辆信息无法归批行级失败 - 优先级: P0 - 类型: 数据校验 - 覆盖维度: 数据校验 - 来源: [需求] - 描述: 对应 REQ-006。运单在系统内缺少司机或车辆信息导致三要素不全、无法归批的行计入失败清单,失败原因标注"无法归批"。 - 关键验证点: 缺司机信息的运单失败且原因准确;缺车辆信息的运单失败且原因准确;该行剔除后批次划分正确重算(若其本应为某批次最小序号,联动 TP-P-007)。 ### TP-U-015: 单文件混合多类错误(规则组合) - 优先级: P1 - 类型: 异常测试 - 覆盖维度: 规则组合 - 来源: [需求][最佳实践] - 描述: 对应 REQ-006/REQ-007。同一文件同时含多类数据级错误(序号重复+运单不存在+货源不匹配+无法归批)时各行独立判定;文件级错误与数据级错误共存时文件级优先整体拒绝。 - 关键验证点: 各失败行原因分别准确、互不串行;成功行数+失败行数=总行数;任务状态"已完成·部分失败";文件级+数据级共存时整体拒绝且不进入失败清单流程。 ### TP-U-016: 单元格特殊字符与超长内容防御 - 优先级: P1 - 类型: 异常测试 - 覆盖维度: 数据校验 - 来源: [漏测清单] - 描述: 对应 REQ-006。清单单元格含 Emoji、SQL 注入字符、HTML 标签、超长字符串(超过系统字段长度)时系统不崩溃、不误吞有效行;源文件名含特殊字符/超长时列表展示与 zip 命名不异常。 - 关键验证点: 单号含 `'; DROP TABLE--`、`