6.0 KiB
6.0 KiB
测试实施第四步执行记录
执行时间
- 日期:2026-07-01
- 总步骤数:8
- 当前步骤:第 4 步,执行发送前校验测试
第四步目标
验证客户发送前的核心前置校验闭环,包括短信模板多变量识别、变量完整性校验、风控规则直接拒绝、风控规则进入人工审核、计费预估和账户余额检查。
导入数据发送、非法字符展示、敏感词/非法字符对计费的干扰当前缺少完整发送前校验入口,本步按阻塞缺口记录。
执行环境
| 项目 | 结果 |
|---|---|
| PostgreSQL | 可连接,使用真实数据库。 |
| Redis | 可连接,本步未直接消费队列。 |
| MinIO | 可连接,本步未执行文件导入。 |
| API | 使用 API_PORT=3101 npm --prefix api run start:dev 启动,执行完成后已停止。 |
已执行命令
Test-NetConnection 127.0.0.1 -Port 5432
Test-NetConnection 127.0.0.1 -Port 6379
Test-NetConnection 127.0.0.1 -Port 9000
$env:API_PORT='3101'; npm --prefix api run start:dev
node <inline step4 precheck smoke>
本步执行过的测试用例
| 用例编号 | 用例名称 | 执行范围 | 结果 |
|---|---|---|---|
| TC-TEMPLATE-001 | 多变量模板识别 | 创建包含 ${name}、${orderNo}、${code}、${minutes} 的短信模板,查询模板变量列表。 |
通过 |
| TC-TEMPLATE-002 | 多变量完整提交 | 使用完整变量集调用发送风控评估,验证任务可提交、状态 approved。 | 通过 |
| TC-TEMPLATE-003 / TC-RISK-005 | 模板变量异常 | 少传 orderNo 且多传 coupon,验证任务 rejected、命中 TEMPLATE_VARIABLE_ANOMALY,并记录 missing/extra 变量。 |
通过 |
| TC-RISK-001 | 最大号码数直接拒绝 | 应用 maxPhonesPerTask=3,提交 4 个号码,验证任务 rejected 并命中 MAX_PHONES_PER_TASK。 |
通过 |
| TC-RISK-002 | 重复率进入人工审核 | 3 个号码中 1 个重复,重复率 33.33%,验证任务 pending_review 并命中 DUPLICATE_PHONE_RATIO。 | 通过 |
| TC-RISK-003 | 非法号码率直接拒绝 | 2 个号码中包含 10086X,非法号码率 50.00%,验证任务 rejected 并命中 ILLEGAL_PHONE_RATIO。 |
通过 |
| TC-RISK-004 | 黑名单率进入人工审核 | 创建平台黑名单号码后提交,黑名单命中率 50.00%,验证任务 pending_review 并命中 BLACKLIST_HIT_RATIO。 | 通过 |
| TC-BILLING-001 / TC-TEMPLATE-005 | 费用预估与变量长度计费影响 | 分别估算短内容和长内容,验证 70/67 分段规则导致长内容计费条数和金额增加。 | 通过 |
| TC-BILLING-PRECHECK-001 | 账户余额发送前检查 | 创建账户余额 100 分、5 条,分别执行小额和超额检查,验证小额可发、超额拦截。 | 通过 |
本步创建的数据
| 数据类型 | ID |
|---|---|
| 测试运行编号 | step4-1783101678315 |
| Tenant | cmr1wlzm3000vqgyuztjypar9 |
| SmsApplication | cmr1wlzpi000wqgyugengdtei |
| SmsSignature | cmr1wlzq4000xqgyuytwb1tmn |
| SmsTemplate | cmr1wlzr70011qgyugx8f6gs8 |
| 风控放行任务 | cmr1wm03w001aqgyucjy5palb |
通过项
- 短信模板可自动识别多个变量,并在客户侧查询中返回变量列表。
- 完整变量、合法号码、未触发风险规则时,发送前风控评估可放行。
- 模板变量缺失或多传时,发送前风控评估会直接拒绝,并记录变量异常详情。
- 应用最大号码数配置会参与风控阈值计算,超过上限时直接拒绝。
- 重复号码比例过高会进入人工审核。
- 非法手机号比例过高会直接拒绝。
- 命中平台黑名单会进入人工审核。
- 计费预估按 70/67 规则计算短信分段,内容变长会增加计费条数和金额。
- 账户检查能够同时校验金额余额和短信条数余额。
本步发现的问题
| 问题 | 影响 | 证据 |
|---|---|---|
审核接口传入不存在的 reviewerId 会返回 500 |
签名/模板审核接口没有提前校验 reviewer 是否存在,且签名状态可能已更新后审计记录失败。 | AuditRecord_reviewerId_fkey 外键错误。 |
风控评估传入不存在的 createdById 会返回 500 |
客户端误传或前端传入无效用户 ID 时,发送前校验会被数据库外键错误中断。 | SmsSendTask_createdById_fkey 外键错误。 |
未执行或阻塞项
| 用例编号 | 用例名称 | 原因 |
|---|---|---|
| TC-IMPORT-001 到 TC-IMPORT-006 | 导入数据发送 | 当前 API 未提供客户侧导入文件解析、号码预览、导入批次确认发送的完整入口;MinIO 文件能力已在前序 smoke 验证。 |
| TC-CONTENT-001 | 非法字符展示 | 当前风控评估只校验手机号、黑名单、变量、频控等,没有短信内容非法字符检测和展示字段。 |
| TC-CONTENT-002 | 敏感词命中展示 | 当前有敏感词字典管理接口,但发送前风控未接入敏感词扫描。 |
| TC-CONTENT-003 | 非法字符不干扰计费 | 缺少内容非法字符校验结果与计费预估联动入口,本步只能验证普通长短内容计费。 |
| TC-CONTENT-004 | 非法字符修正后重新计费 | 缺少内容修正闭环入口。 |
| TC-RISK-006 | 非工作时间营销大批量人工审核 | 默认阈值为 5000,本步未构造大批量真实请求;已在 API 单元测试中覆盖。 |
| TC-RISK-007 | 短时间任务创建频控 | 本步避免污染同租户任务频控;已在 API 单元测试中覆盖。 |
本步结论
第四步可执行的发送前校验闭环已通过。当前系统已经具备多变量模板识别、变量异常拒绝、最大号码数拒绝、重复率人工审核、非法号码率拒绝、黑名单人工审核、计费预估和余额检查能力。
主要缺口集中在客户侧导入发送、内容非法字符展示、敏感词接入发送前风控,以及无效外键入参的接口健壮性处理。
下一步
进入第 5 步:执行发送链路闭环测试。重点覆盖任务创建、号码拆分、发送入队、submit result、receipt、uplink、任务查看、定时短信到点发送和 72 小时未知转超时。