Files
baiyue-firstleg/scripts/admin-test-env-modules/IT测试客户八千票待分柜数据生成方案.md
T
2026-08-30 17:02:19 +08:00

4.6 KiB
Raw Blame History

IT测试客户八千票待分柜数据生成方案

目标

通过测试环境正式 HTTP 接口,最多尝试生成 8,000 票头程订单并推进到:

  • 入库单 processStatus=WAIT_SPLIT
  • 测量审核 reviewStatus=APPROVED

只固定两个条件:

  1. 商户账号登录后的企业名称必须精确等于“IT测试”。
  2. 国内起运仓必须精确等于启用状态的“义乌仓”。

不固定渠道、报价税制、目的类型、目的仓、履约类型、提货方式、买单/退税、装载方式、是否查验、SKU 数、箱型、尺寸、托数和重量。它们从当前客户真实可选择且服务端校验通过的数据中选择。

数量规则

  • 最大尝试数:8,000 票。
  • 每票独立随机 1–300 箱,随机到多少就生成多少。
  • 不要求 1–300 全部出现,允许重复和缺号。
  • 每票随机总箱数必须等于所有 SKU 箱数之和,并与入库、测量和待分柜箱数保持一致。
  • 托数固定按每托最多 30 箱计算:palletCount = ceil(totalPackageCount / 30);1–30 箱为 1 托,31–60 箱为 2 托,300 箱为 10 托。
  • 理论平均每票 150.5 箱,8,000 票理论期望总箱数约 1,204,000 箱;实际数量以成功结果为准。
  • 执行按 100 票统计一个批次,共最多 80 批。

入仓码流水为四位数。8,000 票只能降低触及 9999 上限的概率,不能保证所有渠道前缀都有足够余量;测试环境已有流水、渠道各自计数和并发生成都会影响实际可用数量。

随机线路

每票执行时:

  1. 查询“IT测试”客户可见的启用国内仓,并只保留“义乌仓”。
  2. 查询义乌仓当前客户可见且具有报价税制的渠道。
  3. 随机轮换渠道和报价税制候选。
  4. 对 FBA/海外仓线路,通过正式估价接口选择真实可计价目的仓。
  5. 私人地址只使用客户当前可选择的渠道,不伪造目的仓 ID。
  6. 候选为空、价格变更或服务错误时记录失败,不回退到硬编码渠道或历史价格。

SKU 与测量

  • SKU 数随机为 1–4,但不得超过本票总箱数。
  • 总箱数随机拆分到各 SKU,每个 SKU 至少 1 箱。
  • 毛重、净重、数量、申报价值和体积根据各 SKU 箱数计算。
  • 称重图片数量与上述托数一致;每托只在既有 TP-001、YW-TP-002 中随机复用一个托盘编码,不创建新的托盘主档,因此同一票和不同票都允许重复使用这两个编码。
  • 库位由正式仓储预占/结算接口分配,不创建库位主档;普通库位不足时直接使用仓库公共位 A0。托盘复用不改变 palletCount = ceil(totalPackageCount / 30) 的业务托数。
  • 箱唛打印冻结真实总箱数;多 SKU 测量使用各 SKU 实际箱数和对应箱序号。
  • 通过正式文件、称重 OCR、托盘库位预占、测量提交和审核接口推进状态,不直接写数据库。

尽力执行语义

执行入口为:

node scripts/it-test-wait-split-bulk.mjs `
  --count 8000 `
  --batch-size 100 `
  --customer-name 'IT测试' `
  --origin-warehouse-name '义乌仓' `
  --box-min 1 `
  --box-max 300 `
  --output-dir '<本地报告目录>'
  • 随机数在每票请求前直接产生,不设置预览或人工确认步骤。
  • 每票先把本次箱数和随机值写入 results.jsonl,然后请求测试环境。
  • 单票失败不会停止后续票,失败报告保存到 failures/。
  • 每 100 票及每次失败后更新 summary.json。
  • 成功标准以该票真实到达 WAIT_SPLIT / APPROVED 且箱数、客户、义乌仓一致为准。
  • 最终允许不足 8,000 票成功,实际成功数、失败数和总箱数以 summary.json 为准。

报告内容

results.jsonl 对每票记录:

  • 全局序号、批次、随机箱数
  • 订单 ID/订单号
  • 入库单 ID/入仓码
  • 渠道、目的类型和目的仓
  • 是否到达待分柜
  • 断言失败、deployment blocker、requestId/traceId

summary.json 汇总:

  • 已尝试、成功和失败票数
  • 成功票总箱数、最小/最大/平均箱数
  • 各渠道成功票数
  • 各目的类型成功票数
  • 进程 ID、开始时间、更新时间和报告目录

安全边界

  • 仅用于已明确授权的测试环境,禁止用于生产环境。
  • 账号、密码、Token 和环境地址只从本机环境配置加载,不进入源码或报告。
  • 不自动删除已成功或部分成功的数据。
  • 不新增托盘或库位主档;只能复用 TP-001、YW-TP-002,库位不足落公共位 A0。
  • 不重置数据库、不执行 SQL、不绕过正式状态机。
  • 清理测试数据或文件必须另行获得明确授权。