# 测试实施第一步执行记录 ## 执行时间 - 日期: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 个示例均校验成功。 | ## 已执行命令 ```bash 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。 | ### 已补充执行命令 ```bash 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-a`、`tenant-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 自动化和队列契约已在前序执行中确认通过。 可以进入第二步:执行基础配置和权限基础测试。