Files
lislgosms/docs/testing-progress.md
T

5.8 KiB
Raw Blame History

第一版系统化测试进度

2026-07-01

新增测试基础

  • API 引入 Jest + ts-jest。
  • API 新增脚本:
    • npm --prefix api test
    • npm --prefix api test -- <spec>
  • 根目录新增脚本:
    • npm run test:api
    • npm run test:gateway

新增 API 测试

测试文件 覆盖范围
api/src/risk-review/risk-review.service.spec.ts 最大号码数、重复率、非法号码率、黑名单率、模板变量异常、非工作时间营销大批量、短时间频控、直接拒绝、人工审核。
api/src/billing/billing.service.spec.ts 70/67 费用预估、余额/授信/套餐检查、充值、冻结、扣费、释放、退款、调整、短信计费记录。
api/src/send-chain/send-chain.service.spec.ts 批量任务创建、手机号去重拆分、发送入队、Gateway SubmitCommand 投递、submit result、receipt、uplink、72 小时未知转超时。
api/src/channels/channels.service.spec.ts 通道创建、路由规则、报备材料 upsert、报备任务创建、导出、回执导入、签名报备状态同步。
api/src/operations/operations.service.spec.ts 发送记录查询过滤、dashboard、statistics、trace、reconciliation。

新增 Gateway 测试

  • gateway/internal/tracker/tracker_test.go 增加并发 SEQID/MSGID/GatewayMessageID 映射测试。
  • 既有 Gateway 测试继续覆盖:
    • tracker 基础映射和未知 submit resp。
    • reconnector 重连和最终错误返回。
    • health handler。
    • gocmpp adapter。
    • spike simulator。

已执行命令

npm --prefix api test -- risk-review.service.spec.ts
npm --prefix api test -- billing.service.spec.ts
npm --prefix api test -- send-chain.service.spec.ts
npm --prefix api test -- channels.service.spec.ts
npm --prefix api test -- operations.service.spec.ts
npm run test:api
npm run verify:phase8
npm run build
npm run spike:gateway
npm --prefix api test
npm run test:gateway
node tools/smoke/real-env-smoke.mjs
$env:API_PORT='3101'; npm --prefix api run start:dev
node <inline step4 precheck smoke>
$env:API_PORT='3101'; $env:API_ENABLE_SEND_WORKER='true'; npm --prefix api run start:dev
node <inline step5 send-chain smoke>
node <inline step5 schedule probe>
$env:API_PORT='3101'; npm --prefix api run start:dev
node <inline step6 billing/reconciliation smoke>
node <inline step6 auto-billing probe>

当前结果

  • API Jest5 个 test suite 通过,22 个测试通过。
  • Gatewaynpm run spike:gateway 通过。
  • 阶段 8 完整验证:npm run verify:phase8 通过,其中 BullMQ spike 15000 条消息、并发 500、端到端 705.65 TPS,满足 500 TPS。
  • 前端 build 通过,仍存在既有 Vite chunk size warning。
  • API 测试均使用 mock,不要求 PostgreSQL/Redis/MinIO 在线。
  • 真实 PostgreSQL/Redis/MinIO smoke 通过:
    • PostgreSQL localhost:5432、Redis localhost:6379、MinIO localhost:9000/9001 端口均连通。
    • npm --prefix api run prisma:migrate:deploy 通过,无待应用迁移。
    • API 以真实 .env 启动,GET http://127.0.0.1:3101/api/health 返回 ok
    • tools/smoke/real-env-smoke.mjs 已补充最小幂等 seed,并验证登录、企业/客户、人工充值、余额检查、发送任务、MinIO 预签名上传、运营日志、发送链路追踪和账务对账聚合。
  • 第 4 步发送前置校验 smoke 通过:
    • TC-TEMPLATE-001TC-TEMPLATE-002TC-TEMPLATE-003 / TC-RISK-005TC-RISK-001TC-RISK-002TC-RISK-003TC-RISK-004TC-BILLING-001 / TC-TEMPLATE-005TC-BILLING-PRECHECK-001 均通过。
    • 记录两个接口健壮性问题:不存在的 reviewerId、不存在的 createdById 会触发数据库外键 500。
    • 客户侧导入发送、非法字符展示、敏感词接入发送前风控当前缺少完整入口,已在 docs/testing-execution-step-4.md 记录为阻塞缺口。
  • 第 5 步发送链路 smoke 通过:
    • TC-SEND-001 / TC-SEND-002TC-SEND-003 / TC-SEND-004TC-SEND-005TC-SEND-006TC-SEND-007TC-SEND-008TC-SEND-009 / TC-SEND-010 均通过。
    • 使用真实 Redis/BullMQ 和 API_ENABLE_SEND_WORKER=true 验证了任务创建、号码去重拆分、自动入队、Worker 消费、submit record、submit result、receipt、uplink、72 小时 unknown 转 timeout、客户端/运营端任务查看。
    • 定时发送探测发现 scheduledAt/sendMode=scheduled 会被接口忽略,任务直接变为 queued,已在 docs/testing-execution-step-5.md 记录为功能缺口。
  • 第 6 步计费和对账 smoke 通过:
    • TC-BILLING-001TC-BILLING-002 / TC-RECHARGE-001TC-BILLING-003TC-BILLING-004 / TC-BILLING-005 / TC-BILLING-006 / TC-BILLING-007TC-BILLING-008 / TC-RECON-001 seedTC-RECON-001TC-DASHBOARD-001 / TC-STAT-001TC-TRACE-001TC-BILLING-009 均通过。
    • 验证了费用预估、人工充值、余额检查、冻结、扣费、释放、退款、短信计费记录、账务流水、dashboard/statistics、trace 和 reconciliation。
    • 自动计费探测发现发送任务不会自动生成短信计费记录、账户交易流水,消息金额默认为 0,已在 docs/testing-execution-step-6.md 记录为发送计费集成缺口。

已知缺口

  • 暂未新增前端测试框架,前端仍以 npm run build 作为 smoke。
  • BullMQ 真实链路仍由 npm run spike:bullmq 覆盖,不在 Jest 内启动 Redis。
  • Gateway 未接真实运营商 SMSC;真实 CMPP 互通需要运营商测试环境后补充联调记录。
  • 客户侧导入发送、短信内容非法字符展示和敏感词发送前拦截尚未形成完整业务入口。
  • 定时短信发送缺少计划发送时间字段、scheduled 状态、到点触发和取消接口。
  • 发送链路尚未自动接入计费闭环,发送任务不会自动冻结/扣费/生成短信计费记录。