170 lines
7.7 KiB
Markdown
170 lines
7.7 KiB
Markdown
# 测试实施第一步执行记录
|
|
|
|
## 执行时间
|
|
|
|
- 日期: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 自动化和队列契约已在前序执行中确认通过。
|
|
|
|
可以进入第二步:执行基础配置和权限基础测试。
|