4.6 KiB
4.6 KiB
IT测试客户八千票待分柜数据生成方案
目标
通过测试环境正式 HTTP 接口,最多尝试生成 8,000 票头程订单并推进到:
- 入库单
processStatus=WAIT_SPLIT - 测量审核
reviewStatus=APPROVED
只固定两个条件:
- 商户账号登录后的企业名称必须精确等于“IT测试”。
- 国内起运仓必须精确等于启用状态的“义乌仓”。
不固定渠道、报价税制、目的类型、目的仓、履约类型、提货方式、买单/退税、装载方式、是否查验、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 上限的概率,不能保证所有渠道前缀都有足够余量;测试环境已有流水、渠道各自计数和并发生成都会影响实际可用数量。
随机线路
每票执行时:
- 查询“IT测试”客户可见的启用国内仓,并只保留“义乌仓”。
- 查询义乌仓当前客户可见且具有报价税制的渠道。
- 随机轮换渠道和报价税制候选。
- 对 FBA/海外仓线路,通过正式估价接口选择真实可计价目的仓。
- 私人地址只使用客户当前可选择的渠道,不伪造目的仓 ID。
- 候选为空、价格变更或服务错误时记录失败,不回退到硬编码渠道或历史价格。
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、不绕过正式状态机。
- 清理测试数据或文件必须另行获得明确授权。