Files
lislgosms/docs/testing-execution-step-1.md

7.7 KiB

测试实施第一步执行记录

执行时间

  • 日期:2026-07-01
  • 步骤:第一步,准备测试环境和基线数据

第一步目标

确认后续系统功能测试所需的基础环境、服务状态、本地 Gateway 模拟能力和契约示例是否可用。第一步不以完整业务功能验收为目标,重点是让后续客户、认证、应用、签名、模板、通道、账户、发送、日志和 Gateway 状态测试具备可执行基线;系统功能通过仍必须依赖真实 API 和真实基础设施。

环境检查结果

项目 结果 说明
Docker 未发现 Get-Command docker 无可用输出,暂不能用 infra/docker-compose.yml 拉起 PostgreSQL/Redis/MinIO。
PostgreSQL 5432 不可连接 Test-NetConnection 127.0.0.1 -Port 5432 返回 False。本轮不能执行真实 Prisma 落库和种子数据准备。
Redis 6379 可连接 Test-NetConnection 127.0.0.1 -Port 6379 返回 True
MinIO 9000 不可连接 Test-NetConnection 127.0.0.1 -Port 9000 返回 False。文件上传相关系统功能测试标记为阻塞,需等 MinIO 或等价对象存储测试服务可用后执行。
前端 5173 已有监听 本机已有 5173 监听进程,未重启,避免影响当前开发状态。
API 3101 可启动 使用 API_PORT=3101 npm --prefix api run start:dev 启动成功。
API Health 通过 GET http://127.0.0.1:3101/api/health 返回 {"status":"ok","service":"cmpp-platform-api",...}
Gateway 自动化检查 通过 npm run test:gateway 通过。
队列契约检查 通过 npm run spike:contracts 通过,4 个示例均校验成功。

已执行命令

Test-NetConnection 127.0.0.1 -Port 5432
Test-NetConnection 127.0.0.1 -Port 6379
Test-NetConnection 127.0.0.1 -Port 9000
Test-NetConnection 127.0.0.1 -Port 3101
$env:API_PORT='3101'; npm --prefix api run start:dev
Invoke-RestMethod -Uri 'http://127.0.0.1:3101/api/health'
npm run test:gateway
npm run spike:contracts

第一阶段基线数据状态

由于 PostgreSQL 当前不可连接,本轮没有向数据库写入客户、企业认证、应用、签名、模板、账户、通道或发送任务基线数据。后续执行第二步前需要先满足以下任一条件:

  1. 启动本地 PostgreSQL,并使用 Prisma migration/seed 或 API 创建基线数据。
  2. 使用 Docker Compose 启动 PostgreSQL、Redis、MinIO。
  3. 对无法依赖真实服务的系统功能用例,明确标记为阻塞或未执行;mock 只能用于单元测试隔离,不能作为系统功能通过依据。

本步执行过的测试用例

第一步主要是环境准备,不执行完整系统功能用例。但本轮为了确认 Gateway 本地模拟能力和契约校验可用,执行了以下自动化/契约类用例:

用例编号 用例名称 执行方式 结果
TC-GW-001 SEQID/MSGID 追踪 npm run test:gateway 中的 Go tracker 测试覆盖 通过
TC-GW-002 重连后继续消费 npm run test:gateway 中的 Go reconnector 测试覆盖重连基础行为 通过
TC-GW-003 Health 检查 npm run test:gateway 中的 Go health handler 测试覆盖 通过
TC-GW-004 gocmpp submit/resp 模拟器 npm run test:gateway 中的 gocmpp/spike simulator 测试覆盖基础模拟能力 通过
TC-CONTRACT-001 SubmitCommand Schema 校验 npm run spike:contracts 通过
TC-CONTRACT-002 SubmitResult Schema 校验 npm run spike:contracts 通过
TC-CONTRACT-003 ReceiptEvent Schema 校验 npm run spike:contracts 通过
TC-CONTRACT-004 UplinkEvent Schema 校验 npm run spike:contracts 通过

本步未执行的测试用例

  • 客户端/运营端业务功能用例未执行。
  • 企业认证、客户、应用、签名、模板、计费、发送、Dashboard、系统日志、CMPP 连接状态管理等闭环用例未执行。
  • 原因:PostgreSQL 和 MinIO 当前不可用,缺少真实业务数据落库环境。

第一阶段结论

第一步环境准备部分完成到“可执行契约/Gateway 自动化基线”的程度:

  • API 能启动并通过 health。
  • Redis 可连接。
  • Gateway 自动化基线通过。
  • 队列契约基线通过。

第一步尚未完全完成真实业务数据准备:

  • PostgreSQL 不可连接。
  • MinIO 不可连接。
  • Docker 不可用,无法直接拉起 compose。

下一步建议

第二步执行前,建议先恢复或启动 PostgreSQL 和 MinIO。若暂时无法启动,则依赖数据库或对象存储的系统功能用例标记为阻塞或未执行,不能以 mock 自动化结果替代真实闭环。

补充执行记录:PostgreSQL 和 MinIO 恢复后

补充执行时间

  • 日期:2026-07-01
  • 目的:继续完成第一步中未完成的真实数据库和对象存储基线准备。

恢复后环境检查

项目 结果 说明
PostgreSQL 5432 可连接 Test-NetConnection 127.0.0.1 -Port 5432 返回 True
MinIO 9000 可连接 Test-NetConnection 127.0.0.1 -Port 9000 返回 True
MinIO Console 9001 可监听 本机 9001 端口已有监听。
Prisma Client 通过 npm --prefix api run prisma:generate 成功。
Prisma Migration 通过 npm --prefix api run prisma:migrate:deploy 成功,无待应用迁移。
MinIO Health 通过 GET http://127.0.0.1:9000/minio/health/live 返回 200。

已补充执行命令

Test-NetConnection 127.0.0.1 -Port 5432
Test-NetConnection 127.0.0.1 -Port 9000
npm --prefix api run prisma:generate
npm --prefix api run prisma:migrate:deploy
Invoke-WebRequest -Uri 'http://127.0.0.1:9000/minio/health/live'

数据库基线数据

已通过 Prisma 写入稳定 ID 的测试基线数据,覆盖后续闭环测试所需的主要业务对象:

数据类型 当前数量 说明
Tenant 5 包含 tenant-atenant-b、停用客户、认证驳回客户等。
User 6 包含客户管理员、客户普通用户、运营管理员、运营审核员。
TenantAccount 4 覆盖余额充足、普通客户、停用客户等账户状态。
SmsApplication 3 覆盖 active 和 disabled 应用。
SmsSignature 4 覆盖已审核报备通过、待报备、驳回等状态。
SmsTemplate 3 包含验证码模板和多变量模板。
TemplateVariable 6 覆盖 code 以及 name/orderNo/date/code 多变量。
SmsChannel 3 包含 CMPP 主通道、备用通道及连接状态配置。
SmsChannelGroup 2 包含测试通道组。
ChannelRouteRule 2 覆盖客户/应用维度路由。
OperationLog 7 包含登录、发送、通道连接等基线日志。

MinIO 基线数据

已创建对象存储测试基线:

项目
Bucket cmpp-test-baseline
Object step-1/baseline.txt
Size 22 bytes

本次补充执行过的测试用例

本次补充仍属于第一步环境与基线数据准备,不执行完整业务功能用例。新增执行的是环境/基线检查,不对应新的系统功能用例编号。

已保持第一步累计执行过的用例不变:

  • TC-GW-001:通过
  • TC-GW-002:通过
  • TC-GW-003:通过
  • TC-GW-004:通过
  • TC-CONTRACT-001:通过
  • TC-CONTRACT-002:通过
  • TC-CONTRACT-003:通过
  • TC-CONTRACT-004:通过

补充后第一阶段结论

第一步现在已完成:

  • PostgreSQL 可连接。
  • Prisma Client 可生成。
  • 数据库迁移状态正常。
  • 真实数据库基线数据已准备。
  • MinIO 可连接,测试 bucket 和对象已准备。
  • Redis、API health、Gateway 自动化和队列契约已在前序执行中确认通过。

可以进入第二步:执行基础配置和权限基础测试。