Files
lislgosms/docs/testing-execution-step-4.md
T

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 小时未知转超时。