全量 HTTP 验收脚本索引
全量验收只认测试环境 HTTP 脚本。它们通过 Gateway 调用已部署服务,按业务模块执行真实登录、权限、状态、幂等、跨服务和数据链路检查;脚本通过后,剩余工作是 Admin/Client 的真实接口调用与浏览器样式验收,以及 PDA 页面/设备验收。
| 验收目标 | 唯一入口 | 数据副作用 | 覆盖范围 |
|---|---|---|---|
| 平台后台全模块 HTTP 验收 | scripts/admin-test-env-acceptance.mjs |
会创建、更新或最终停用测试数据 | --modules 默认列表中的平台客户、仓储、订单、入库、分柜、装柜、船期、拖车、报关、财务、通知、统计等模块 |
| 客户工作台完整 HTTP 链路验收 | scripts/client-test-env-acceptance.mjs |
会创建测试企业、订单、入库、权限和站内消息数据 | 注册/审核、客户隔离、订单、入库计费、文件、财务、客户侧权限,以及我的消息未读/已读/全部已读链路 |
| 固定客户批量创建待审核订单 | scripts/create-pending-review-orders.mjs |
只使用固定客户账号创建指定数量订单 | 登录 17512095155,选择真实可计价仓库/渠道,创建并提交订单,停在待审核,不创建客户、不审核订单 |
| Client 二期专项 HTTP 验收 | scripts/client-phase2-test-env-acceptance.mjs |
会写入测试环境业务数据 | 二期客户入库、测量、费用和权限专项场景;不是替代 Client 全量入口 |
执行前必须确认目标环境、账号和数据清理/停用策略,并获得当前对话的测试环境验收授权。admin-test-env-modules/*contract.test.mjs 只验证模块脚本结构,不能代替 HTTP 验收。
推荐顺序:部署服务 → Admin 全模块 HTTP 验收 → Client 完整 HTTP 链路验收 → 前端真实页面调用和样式验收 → PDA 页面/设备验收。任何本地单测通过都不能替代 HTTP 全量验收。
固定客户待审核订单
需要为人工审核准备固定数量的订单时,使用 create-pending-review-orders.mjs。可直接在文件顶部 CONFIG 中填写 GATEWAY、USERNAME、PASSWORD 和 COUNT;固定账号为 17512095155。脚本不会创建客户,也不会调用平台审核、入库或后续履约接口。数量支持 1-100,每张订单创建后立即提交并回查客户端状态为 SUBMITTED,报告统一记录为 PENDING_REVIEW。
node scripts/create-pending-review-orders.mjs
本地质量检查(非全量验收)
以下命令只用于代码质量和契约回归,不访问测试环境,不代表服务全量可用:
| 检查 | 入口 |
|---|---|
| 后端 Maven 契约/单元测试 | scripts/backend-full-regression.ps1 |
| Admin/Client 本地测试与类型检查 | scripts/frontend-full-regression.ps1 |
| PDA 本地页面和状态测试 | ../apps/pda-uniapp/tests/*.test.mjs |
| 本地数据库 SQL 静态/受控验收 | scripts/local-db-full-acceptance.ps1 |
| AGENTS 快速索引一致性 | scripts/agents-index-contract.ps1;只读核对根快速表唯一性、部署单元、业务模块、Client active 路由、海外 Gateway 覆盖、PDA 注册页面、Maven 模块、海外安全服务部署映射、关键入口与排除目录 |
| Java 质量聚合摘要 | node --test scripts/java-quality-summary.test.mjs、node scripts/java-quality-summary.mjs --output target/java-quality-summary.json;聚合 Maven/服务拓扑、OpenAPI 覆盖、JaCoCo 和 SpotBugs 报告,默认只报告存量缺口,CI 仅用显式 --require-spotbugs 检查报告完整性且当前允许失败 |
| 单服务部署失败回滚合同 | scripts/deploy-built-service-rollback.test.mjs;模拟成功、健康失败和启动失败,确认仅恢复同服务先前健康镜像且部署任务仍失败 |
Admin/Client HTTP 脚本的离线合同只验证脚本结构、参数和模块边界,不访问测试环境:
| 合同范围 | 入口 |
|---|---|
| Admin 订单、箱码、三期装柜/PDA、订舱、拖车、通知 | scripts/admin-test-env-modules/*contract.test.mjs;模块映射见 scripts/admin-test-env-modules/README.md |
| Client 消息中心调用 | scripts/client-notifications-contract.test.mjs |
| 验收入口与模块注册 | scripts/full-regression-entry-contract.test.mjs、scripts/controller-pipeline-contract.test.mjs |
后端全量回归
入口
在 baiyue-firstleg 根目录执行:
.\scripts\backend-full-regression.ps1
前端全量回归
frontend-full-regression.ps1 只编排本地 Admin/Client 的 pnpm test 与 pnpm typecheck,不调用 Gateway、不部署、不连接数据库。
.\scripts\frontend-full-regression.ps1 -DryRun
.\scripts\frontend-full-regression.ps1
.\scripts\frontend-full-regression.ps1 -SkipAdmin
.\scripts\frontend-full-regression.ps1 -SkipClient
脚本会检查 pnpm 和目标应用的 package.json;任一命令失败时立即透传退出码,不能同时跳过 Admin 和 Client。
后端脚本固定运行:
mvn -f <仓库根>/pom.xml -pl order,firstleg,iam,gateway,file,warehouse -am test
这会先构建公共依赖,再运行 order、firstleg、iam、gateway、file 与 warehouse 的全部 Maven 测试。覆盖包括:
- 三期 Ocean Booking Controller/Service/Mapper/SQL 契约;
- 三期 Truck Appointment Controller/Service/Mapper 契约、状态机、乐观锁和幂等操作;
- 二期
WAIT_SPLIT的 firstleg 查询、order 统一查询及筛选语义; - Warehouse 海外仓阶梯费用 SQL 与 Controller 权限合同;
- 拣货/预装/装柜模型映射与既有 Smart Loading/Split 契约。
Dry-run
.\scripts\backend-full-regression.ps1 -DryRun
Dry-run 只检查根 pom.xml 和关键回归测试文件并打印 Maven 命令,不启动 Java 服务,不请求 Gateway,不连接或写入任何数据库。
现有相关脚本与边界
数据库中文注释审计
database-comment-audit.ps1 离线扫描各模块 src/main/resources/db/*.sql 中的 CREATE TABLE 定义,不连接数据库、不执行 SQL,也不修改任何文件。
.\scripts\database-comment-audit.ps1
.\scripts\database-comment-audit.ps1 -Modules finance,order
.\scripts\database-comment-audit.ps1 -Modules finance -SummaryOnly
.\scripts\database-comment-audit.ps1 -Format Json
.\scripts\database-comment-audit.ps1 -FailOnIssues
.\scripts\database-comment-audit.ps1 -SelfTest
默认报告模式即使存在存量缺口也返回 0;CI 使用 -FailOnIssues,缺失或纯英文表/字段注释返回 1,模块或路径配置错误返回 2。规范和注释口径见 ../docs/数据库注释维护规范.md。
本地 MySQL 全量验收
正式入口是 local-db-full-acceptance.ps1,只允许连接本机 127.0.0.1 或 localhost,默认端口 3306;测试库 8.163.30.128 会立即以退出码 2 拒绝。脚本固定校验统一 SQL SHA-256 00E8F9C24CE16FE6B4D2B6AF60460AE1AF1D264DFE110D4BDCE611F09EB69EAA 和 15403 行,并静态确认中文注释升级采用校验入队、每表一次 ALTER、结构签名复核、九库覆盖断言及唯一最终 PASS。
.\scripts\local-db-full-acceptance.ps1 -DryRun
.\scripts\local-db-full-acceptance.ps1
Dry-run 只校验 SQL 输入并打印空库、复跑、两类 picking 旧结构、WAIT_SPLIT/IAM、海外仓旧结构、中断恢复和最终结构的执行顺序,不启动 MySQL、不写库。真实运行每阶段写入 .codex-tmp/p23-04-acceptance/acceptance-run-*.log,不使用 --force,任一 SQL 错误立即停止并透传退出码,最后执行 verify-final.sql。脚本不保存或传入数据库密码,使用本机默认认证环境。
仓库中 phase2-test-env-acceptance.ps1、admin-test-env-acceptance.mjs、client-test-env-acceptance.mjs、export-center-test-env-acceptance.ps1 等属于测试环境/API 验收脚本;它们可能读取或写入测试环境数据,不由本入口调用。migrate-local-qualification-file.ps1、local-env.ps1 等是环境/迁移辅助脚本,也不由本入口调用。
本入口不读取数据库凭据、不执行 MySQL、HTTP、迁移、DDL、INSERT/UPDATE/DELETE,也不启动 Nacos、Gateway 或业务服务。需要数据库矩阵时必须单独运行受控验收流程。
退出码
0:dry-run 检查通过或 Maven 全量测试通过;2:仓库根 pom 或关键测试文件缺失,脚本未启动 Maven;- 其他非零值:原样透传 Maven 失败退出码。
脚本不设置 MAVEN_OPTS、数据库 URL 或测试账号;环境参数仅为可选的 $MavenCommand(默认 mvn),用于指定本机 Maven 可执行文件。