docs: update testing execution notes
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
## 第一步目标
|
## 第一步目标
|
||||||
|
|
||||||
确认后续系统功能测试所需的基础环境、服务状态、测试替身和契约示例是否可用。第一步不以完整业务功能验收为目标,重点是让后续客户、认证、应用、签名、模板、通道、账户、发送、日志和 Gateway 状态测试具备可执行基线。
|
确认后续系统功能测试所需的基础环境、服务状态、本地 Gateway 模拟能力和契约示例是否可用。第一步不以完整业务功能验收为目标,重点是让后续客户、认证、应用、签名、模板、通道、账户、发送、日志和 Gateway 状态测试具备可执行基线;系统功能通过仍必须依赖真实 API 和真实基础设施。
|
||||||
|
|
||||||
## 环境检查结果
|
## 环境检查结果
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
| Docker | 未发现 | `Get-Command docker` 无可用输出,暂不能用 `infra/docker-compose.yml` 拉起 PostgreSQL/Redis/MinIO。 |
|
| Docker | 未发现 | `Get-Command docker` 无可用输出,暂不能用 `infra/docker-compose.yml` 拉起 PostgreSQL/Redis/MinIO。 |
|
||||||
| PostgreSQL 5432 | 不可连接 | `Test-NetConnection 127.0.0.1 -Port 5432` 返回 `False`。本轮不能执行真实 Prisma 落库和种子数据准备。 |
|
| PostgreSQL 5432 | 不可连接 | `Test-NetConnection 127.0.0.1 -Port 5432` 返回 `False`。本轮不能执行真实 Prisma 落库和种子数据准备。 |
|
||||||
| Redis 6379 | 可连接 | `Test-NetConnection 127.0.0.1 -Port 6379` 返回 `True`。 |
|
| Redis 6379 | 可连接 | `Test-NetConnection 127.0.0.1 -Port 6379` 返回 `True`。 |
|
||||||
| MinIO 9000 | 不可连接 | `Test-NetConnection 127.0.0.1 -Port 9000` 返回 `False`。文件上传相关测试后续需 mock 或等 MinIO 可用。 |
|
| MinIO 9000 | 不可连接 | `Test-NetConnection 127.0.0.1 -Port 9000` 返回 `False`。文件上传相关系统功能测试标记为阻塞,需等 MinIO 或等价对象存储测试服务可用后执行。 |
|
||||||
| 前端 5173 | 已有监听 | 本机已有 5173 监听进程,未重启,避免影响当前开发状态。 |
|
| 前端 5173 | 已有监听 | 本机已有 5173 监听进程,未重启,避免影响当前开发状态。 |
|
||||||
| API 3101 | 可启动 | 使用 `API_PORT=3101 npm --prefix api run start:dev` 启动成功。 |
|
| 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",...}`。 |
|
| API Health | 通过 | `GET http://127.0.0.1:3101/api/health` 返回 `{"status":"ok","service":"cmpp-platform-api",...}`。 |
|
||||||
@@ -42,11 +42,11 @@ npm run spike:contracts
|
|||||||
|
|
||||||
1. 启动本地 PostgreSQL,并使用 Prisma migration/seed 或 API 创建基线数据。
|
1. 启动本地 PostgreSQL,并使用 Prisma migration/seed 或 API 创建基线数据。
|
||||||
2. 使用 Docker Compose 启动 PostgreSQL、Redis、MinIO。
|
2. 使用 Docker Compose 启动 PostgreSQL、Redis、MinIO。
|
||||||
3. 对无法依赖真实服务的用例,明确改用 mock/测试替身执行。
|
3. 对无法依赖真实服务的系统功能用例,明确标记为阻塞或未执行;mock 只能用于单元测试隔离,不能作为系统功能通过依据。
|
||||||
|
|
||||||
## 本步执行过的测试用例
|
## 本步执行过的测试用例
|
||||||
|
|
||||||
第一步主要是环境准备,不执行完整系统功能用例。但本轮为了确认 Gateway 和契约测试替身可用,执行了以下自动化/契约类用例:
|
第一步主要是环境准备,不执行完整系统功能用例。但本轮为了确认 Gateway 本地模拟能力和契约校验可用,执行了以下自动化/契约类用例:
|
||||||
|
|
||||||
| 用例编号 | 用例名称 | 执行方式 | 结果 |
|
| 用例编号 | 用例名称 | 执行方式 | 结果 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@@ -67,7 +67,7 @@ npm run spike:contracts
|
|||||||
|
|
||||||
## 第一阶段结论
|
## 第一阶段结论
|
||||||
|
|
||||||
第一步环境准备部分完成到“可执行 mock/契约/Gateway 自动化基线”的程度:
|
第一步环境准备部分完成到“可执行契约/Gateway 自动化基线”的程度:
|
||||||
|
|
||||||
- API 能启动并通过 health。
|
- API 能启动并通过 health。
|
||||||
- Redis 可连接。
|
- Redis 可连接。
|
||||||
@@ -82,7 +82,7 @@ npm run spike:contracts
|
|||||||
|
|
||||||
## 下一步建议
|
## 下一步建议
|
||||||
|
|
||||||
第二步执行前,建议先恢复或启动 PostgreSQL 和 MinIO。若暂时无法启动,则第二步只能执行不依赖数据库的 mock 自动化测试,真实系统功能闭环需要延后。
|
第二步执行前,建议先恢复或启动 PostgreSQL 和 MinIO。若暂时无法启动,则依赖数据库或对象存储的系统功能用例标记为阻塞或未执行,不能以 mock 自动化结果替代真实闭环。
|
||||||
|
|
||||||
## 补充执行记录:PostgreSQL 和 MinIO 恢复后
|
## 补充执行记录:PostgreSQL 和 MinIO 恢复后
|
||||||
|
|
||||||
@@ -166,4 +166,4 @@ Invoke-WebRequest -Uri 'http://127.0.0.1:9000/minio/health/live'
|
|||||||
- MinIO 可连接,测试 bucket 和对象已准备。
|
- MinIO 可连接,测试 bucket 和对象已准备。
|
||||||
- Redis、API health、Gateway 自动化和队列契约已在前序执行中确认通过。
|
- Redis、API health、Gateway 自动化和队列契约已在前序执行中确认通过。
|
||||||
|
|
||||||
可以进入第二步:执行静态配置和权限基础测试。
|
可以进入第二步:执行基础配置和权限基础测试。
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
## 执行时间
|
## 执行时间
|
||||||
|
|
||||||
- 日期:2026-07-01
|
- 日期:2026-07-01
|
||||||
- 步骤:第二步,执行静态配置和权限基础测试
|
- 步骤:第二步,执行基础配置和权限基础测试
|
||||||
|
|
||||||
## 第二步目标
|
## 第二步目标
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ node <inline step2 static config smoke>
|
|||||||
|
|
||||||
## 本步结论
|
## 本步结论
|
||||||
|
|
||||||
第二步可执行的静态配置基础创建/查询测试已完成。结果显示:基础配置对象可在真实 PostgreSQL 环境中创建和查询,租户 header 隔离对子集接口有效。
|
第二步可执行的基础配置创建/查询测试已完成。结果显示:基础配置对象可在真实 PostgreSQL 环境中创建和查询,租户 header 隔离对子集接口有效。
|
||||||
|
|
||||||
第二步同时暴露出第一版测试继续推进前需要关注的能力缺口:
|
第二步同时暴露出第一版测试继续推进前需要关注的能力缺口:
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ npm run test:gateway
|
|||||||
| 步骤 | 主题 | 已执行范围 | 结果 |
|
| 步骤 | 主题 | 已执行范围 | 结果 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| 第 1 步 | 环境与基线数据 | PostgreSQL、Redis、MinIO 连通性;Prisma migrate;基础数据 seed;MinIO bucket/object;契约和 Gateway 基线。 | 通过 |
|
| 第 1 步 | 环境与基线数据 | PostgreSQL、Redis、MinIO 连通性;Prisma migrate;基础数据 seed;MinIO bucket/object;契约和 Gateway 基线。 | 通过 |
|
||||||
| 第 2 步 | 静态配置与权限基础 | 客户、应用、通道、路由、日志、连接状态基础 smoke。 | 通过,部分接口为 subset |
|
| 第 2 步 | 基础配置与权限基础 | 客户、应用、通道、路由、日志、连接状态基础 smoke。 | 通过,部分接口为 subset |
|
||||||
| 第 3 步 | 认证、审核、报备 | 签名审核、模板审核、报备任务、报备导出、回执导入、审核/报备日志。 | 通过,企业认证模型/API 缺失 |
|
| 第 3 步 | 认证、审核、报备 | 签名审核、模板审核、报备任务、报备导出、回执导入、审核/报备日志。 | 通过,企业认证模型/API 缺失 |
|
||||||
| 第 4 步 | 发送前校验 | 多变量模板、变量异常、最大号码数、重复率、非法号码率、黑名单率、计费预估、余额检查。 | 通过,导入发送和非法字符/敏感词前置校验缺失 |
|
| 第 4 步 | 发送前校验 | 多变量模板、变量异常、最大号码数、重复率、非法号码率、黑名单率、计费预估、余额检查。 | 通过,导入发送和非法字符/敏感词前置校验缺失 |
|
||||||
| 第 5 步 | 发送链路 | 任务创建、号码拆分、真实 BullMQ 入队、Worker 消费、submit result、receipt、uplink、72 小时 unknown 转 timeout、任务查看。 | 通过,定时发送缺失 |
|
| 第 5 步 | 发送链路 | 任务创建、号码拆分、真实 BullMQ 入队、Worker 消费、submit result、receipt、uplink、72 小时 unknown 转 timeout、任务查看。 | 通过,定时发送缺失 |
|
||||||
@@ -123,11 +123,11 @@ npm run test:gateway
|
|||||||
|
|
||||||
当前剩余说明:
|
当前剩余说明:
|
||||||
|
|
||||||
- Gateway 仍不连接真实运营商 SMSC,继续使用本地模拟器、mock 回写和契约测试。
|
- Gateway 仍不连接真实运营商 SMSC,继续使用 Go Gateway、本地 SMSC 模拟器、连接状态回写 API 和契约测试。
|
||||||
- 前端自动化测试仍未新增,当前继续以 build smoke 为主。
|
- 前端自动化测试仍未新增,当前继续以 build smoke 为主。
|
||||||
|
|
||||||
## 最终结论
|
## 最终结论
|
||||||
|
|
||||||
第一版系统化测试第 1 步到第 8 步已全部执行并归档。当前版本在 mock 单元/轻集成、真实环境 smoke、Go Gateway 测试、BullMQ 性能 smoke、API build 和前端 build 层面均通过。
|
第一版系统化测试第 1 步到第 8 步已全部执行并归档。当前版本在单元/轻集成、真实环境 smoke、Go Gateway 测试、BullMQ 性能 smoke、API build 和前端 build 层面均通过;单元/轻集成中的 mock 依赖只代表代码级隔离测试通过,不代表系统功能可脱离真实后端验收。
|
||||||
|
|
||||||
第一版核心短信业务主链路已经具备可验证基础:配置、审核报备、风控、计费服务、发送链路、Gateway 事件、运营查询和对账聚合均有测试覆盖。剩余缺口主要集中在产品闭环尚未实现的业务能力,需要进入后续开发迭代补齐。
|
第一版核心短信业务主链路已经具备可验证基础:配置、审核报备、风控、计费服务、发送链路、Gateway 事件、运营查询和对账聚合均有测试覆盖。剩余缺口主要集中在产品闭环尚未实现的业务能力,需要进入后续开发迭代补齐。
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## 1. 测试目标
|
## 1. 测试目标
|
||||||
|
|
||||||
第一版测试优先保证短信业务主链路可回归:风控、计费、发送编排、通道路由与报备、查询统计、Gateway 追踪和模拟链路。不依赖真实运营商 CMPP 网关;本地没有 PostgreSQL、Redis、MinIO 时,优先使用 mock、测试替身或 spike 模拟器。
|
第一版测试优先保证短信业务主链路可回归:风控、计费、发送编排、通道路由与报备、查询统计、Gateway 追踪和模拟链路。系统功能验收必须使用真实 NestJS API、Prisma/PostgreSQL、Redis/BullMQ、MinIO 或对应的本地服务;不依赖真实运营商 CMPP 网关,但 Gateway 场景必须通过 Go Gateway、本地 SMSC 模拟器或连接状态回写 API 完成闭环。本地没有 PostgreSQL、Redis、MinIO 时,对应系统功能用例标记为阻塞或未执行,不能用 mock 作为通过依据。
|
||||||
|
|
||||||
系统功能测试用例详见 `docs/system-functional-test-cases.md`。该文档面向第一版验收、人工测试和后续 E2E 自动化改造,覆盖客户端、运营端、API、Gateway 和性能 smoke 场景。
|
系统功能测试用例详见 `docs/system-functional-test-cases.md`。该文档面向第一版验收、人工测试和后续 E2E 自动化改造,覆盖客户端、运营端、API、Gateway 和性能 smoke 场景。
|
||||||
|
|
||||||
@@ -23,11 +23,12 @@
|
|||||||
|
|
||||||
### 2.2 集成测试
|
### 2.2 集成测试
|
||||||
|
|
||||||
- 第一版本轮采用“Service + mock Prisma/BullMQ/Redis”的轻集成方式,验证 NestJS service 编排和数据访问参数。
|
- 单元/轻集成测试可以使用 mock Prisma/BullMQ/Redis 验证 Service 编排和异常分支,但这只代表代码级测试通过。
|
||||||
- 后续如本地或 CI 具备 PostgreSQL/Redis/MinIO,可增加:
|
- 系统功能集成测试必须补充真实服务闭环:
|
||||||
- Prisma test database 集成测试。
|
- Prisma/PostgreSQL test database 集成测试。
|
||||||
- BullMQ + Redis 队列消费集成测试。
|
- BullMQ + Redis 队列消费集成测试。
|
||||||
- MinIO 预签名上传集成测试。
|
- MinIO 预签名上传集成测试。
|
||||||
|
- 前端页面调用真实 API 的浏览器 smoke。
|
||||||
|
|
||||||
### 2.3 契约测试
|
### 2.3 契约测试
|
||||||
|
|
||||||
@@ -45,7 +46,7 @@
|
|||||||
- API build。
|
- API build。
|
||||||
- 前端 build。
|
- 前端 build。
|
||||||
- 不接真实运营商网关。
|
- 不接真实运营商网关。
|
||||||
- 后续可在 PostgreSQL/Redis 可用时补 API HTTP smoke:创建任务 -> 入队 -> 模拟 submit result -> 回执 -> trace 查询。
|
- PostgreSQL/Redis 可用时必须执行 API HTTP smoke:创建任务 -> 入队 -> 模拟 submit result -> 回执 -> trace 查询;不可用时标记阻塞,不记为通过。
|
||||||
|
|
||||||
### 2.5 性能 Smoke
|
### 2.5 性能 Smoke
|
||||||
|
|
||||||
@@ -82,5 +83,5 @@ Windows 本项目推荐使用根脚本 `npm run test:gateway`,脚本会临时
|
|||||||
- 单元测试和轻集成测试可以使用 mock Prisma/BullMQ/Redis 作为测试替身,但这只适用于测试隔离,不代表业务功能可以停留在 mock。
|
- 单元测试和轻集成测试可以使用 mock Prisma/BullMQ/Redis 作为测试替身,但这只适用于测试隔离,不代表业务功能可以停留在 mock。
|
||||||
- 真实开发完成标准必须包含:Prisma/PostgreSQL 模型或查询、NestJS Service/Controller、必要的操作日志、前端调用真实 API,以及在真实 PostgreSQL/Redis/MinIO 可用时完成 smoke。
|
- 真实开发完成标准必须包含:Prisma/PostgreSQL 模型或查询、NestJS Service/Controller、必要的操作日志、前端调用真实 API,以及在真实 PostgreSQL/Redis/MinIO 可用时完成 smoke。
|
||||||
- 发送 Worker 的 Redis 限速和 BullMQ 投递可在 unit/light integration 中使用 mock;真实 Redis 链路仍需由 `spike:bullmq`、API smoke 或端到端验证覆盖。
|
- 发送 Worker 的 Redis 限速和 BullMQ 投递可在 unit/light integration 中使用 mock;真实 Redis 链路仍需由 `spike:bullmq`、API smoke 或端到端验证覆盖。
|
||||||
- 前端暂未新增测试框架;当前保留 `npm run build` 作为 smoke。新增页面能力不能只依赖前端本地状态或 localStorage,除非需求明确声明为临时演示。
|
- 前端暂未新增测试框架;`npm run build` 只作为构建 smoke,不代表页面业务通过。新增页面能力必须调用真实 API;前端本地状态、localStorage、静态数组、兜底数据不能作为系统功能验收通过依据。
|
||||||
- Gateway 不连接真实运营商 SMSC;使用 gocmpp 适配测试和内部模拟器测试。
|
- Gateway 不连接真实运营商 SMSC;使用 gocmpp 适配测试和内部模拟器测试。
|
||||||
|
|||||||
Reference in New Issue
Block a user