4.0 KiB
4.0 KiB
第一版系统化测试进度
2026-07-01
新增测试基础
- API 引入 Jest + ts-jest。
- API 新增脚本:
npm --prefix api testnpm --prefix api test -- <spec>
- 根目录新增脚本:
npm run test:apinpm 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>
当前结果
- API Jest:5 个 test suite 通过,22 个测试通过。
- Gateway:
npm 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、Redislocalhost:6379、MinIOlocalhost: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 预签名上传、运营日志、发送链路追踪和账务对账聚合。
- PostgreSQL
- 第 4 步发送前置校验 smoke 通过:
TC-TEMPLATE-001、TC-TEMPLATE-002、TC-TEMPLATE-003 / TC-RISK-005、TC-RISK-001、TC-RISK-002、TC-RISK-003、TC-RISK-004、TC-BILLING-001 / TC-TEMPLATE-005、TC-BILLING-PRECHECK-001均通过。- 记录两个接口健壮性问题:不存在的
reviewerId、不存在的createdById会触发数据库外键 500。 - 客户侧导入发送、非法字符展示、敏感词接入发送前风控当前缺少完整入口,已在
docs/testing-execution-step-4.md记录为阻塞缺口。
已知缺口
- 暂未新增前端测试框架,前端仍以
npm run build作为 smoke。 - BullMQ 真实链路仍由
npm run spike:bullmq覆盖,不在 Jest 内启动 Redis。 - Gateway 未接真实运营商 SMSC;真实 CMPP 互通需要运营商测试环境后补充联调记录。
- 客户侧导入发送、短信内容非法字符展示和敏感词发送前拦截尚未形成完整业务入口。