fix: coordinate SMS completion and improve operations diagnostics
CSS quality / css-quality (push) Has been cancelled

This commit is contained in:
hectorzhao
2026-09-16 18:27:29 +08:00
parent a0209f93bc
commit a350aca883
40 changed files with 2599 additions and 366 deletions
+37
View File
@@ -5569,3 +5569,40 @@ CLIENT-0914-0107 的模板样式/顺序、文档归属与检索、中文状
- TC-BRAND-20260916-01:浏览器标题、平台Swagger、客户OpenAPI及HTTP文档展示“聆界短信平台”;充值回执图片替代文本、两类报备导出工作簿作者一致。源码检查与构建结果见测试进度,真实页面/API/导出验收单独记录。
- TC-BRAND-20260916-02:产品3.0/工程3.0.0、客户接口独立版本、CMPP协议、API路径、签名规则、工程包名和基础设施标识保持不变;已有工作区修改不被覆盖。
## 长短信回执并发整改验收(2026-09-16,待实施、未执行)
设计依据:[发送链路整改方案第10节](phase-4-send-pipeline-redesign.md#10-长短信分段回执并发整改方案2026-09-16待实施)。下列用例均为P0,通用前置条件为明确授权的隔离测试企业/应用、模拟号码/通道,真实API、PostgreSQL、Redis、Gateway和Webhook接收端;保留非零计费规则。测试执行本身不因用例存在而获得发送、补发、配置变更或压测授权。
每例保留messageId/sourceSubmitRecordId、脱敏回执时间线、工作记录及认领版本、Submit/Outbox数、客户逻辑通知及实际投递次数、账务流水和队列结果。实际投递重试与重复创建分别计数。故障测试使用隔离环境可控断点或进程终止,禁止预生产注入。
| 编号 | 场景与步骤 | 通过标准 |
|---|---|---|
| TC-RC-20260916-01 | 两段、三段成功回执通过不同消费者同时进入;再逐段延迟和逆序各执行一组 | per_segment最后一段成功前不判整条成功;齐段后仅一份最终业务决策;按客户目标生成规定数量回执,无多余逻辑通知和去重键异常 |
| TC-RC-20260916-02 | 两段、四段失败回执同时进入,开启允许补发且有可用模拟候选 | 每个源Submit仅一个后继Submit及对应Outbox;竞争失败流程不重复选路;模拟器无因本缺陷多出的Submit;无retryOf唯一键异常 |
| TC-RC-20260916-03 | 同一失败同时由Submit结果和回执入口触发;再与超时处理竞争 | 入口共用协调;按既有状态规则只提交有效决策;不得一边补发一边最终退款/通知失败 |
| TC-RC-20260916-04 | 相同回执重复20次,再混合不同分段并发;用两个回调消费者处理 | 原始合法分段保留,同一事件幂等;副作用数不随事件重复数增长;不存在仅单进程锁有效的问题 |
| TC-RC-20260916-05 | 旧尝试失败后新尝试成功,再注入旧尝试成功/失败回执;另测message_level成功后矛盾失败 | 最新有效成功不覆盖、不重复退款补发;历史完整;矛盾事件按既有异常规则记录 |
| TC-RC-20260916-06 | 注入unknown、缺一段、回执先于Submit结果;后续补齐合法事实;测试72小时超时 | unknown不补发,缺段不误成功,后续事实可唤醒idle;超时后迟到结果遵守既有规则;未匹配事件不被伪造关联 |
| TC-RC-20260916-07 | 在事实保存前、保存后未认领、认领后未提交三个断点退出并重启 | Inbox或耐久工作分别接续;不漏回执、不丢收尾;每例在预先配置的恢复预算内完成或明确告警 |
| TC-RC-20260916-08 | 挂起旧消费者至租约过期,让新消费者接管,再恢复旧消费者;选路期间加入新事实 | 新fence有效,旧fence不能创建Submit/退款/通知或覆盖状态;revision不丢;允许重新计算但无重复副作用 |
| TC-RC-20260916-09 | 在补发Submit/Outbox事务提交前后、最终状态/账务/通知事务提交前后断开连接或退出 | 未提交全部回滚,已提交通过稳定键回读;恢复不新建第二份补发或账务;短信记录、账户流水、Outbox和通知一致 |
| TC-RC-20260916-10 | HTTP通知成功、503、超时;CMPP客户断线重连;含多客户分段和Registered_Delivery=false | HTTP业务事件及CMPP应通知目标身份稳定;网络重试使用已有投递记录;不因客户回调失败补发短信;不要求回执的分段不下发 |
| TC-RC-20260916-11 | 升级前准备历史已完成、在途、缺Submit关联、无租户通道测试、平台拒绝数据;演练迁移、切换与恢复 | 已完成历史不重发、不重退;在途接续清单完整;归属不明保留待处理;测试消息不通知客户;旧版本恢复前必须验证未完成工作接续,跨租户关联拒绝 |
| TC-RC-20260916-12 | 相同负载及长短信/失败比例做修复前后对比,并注入临时数据库错误、候选失效和持续失败 | 认领后实时校验有效;临时故障不当最终失败;持续失败进入可见告警;正常并发无两类预期冲突;无业务重复、账务不符或持续积压,按预设延迟/排空预算通过 |
附加回归:TC-SEND-018补发停止条件、TC-SEND-019旧回执、TC-SEND-020账务幂等、单段短信、黑名单/频控/签名/引流报备、租户和应用停用、批次进度及发送详情真实回执时间。并发模拟通过不替代API全量、类型、构建与质量门禁;Gateway改动另执行Go测试和vet。任何无法执行项明确登记,不以mock计为真实验收。
## 五项联合整改验收补充(2026-09-16)
此前RC-01~12为本次实施矩阵,不能沿用“待实施”标题作为当前事实;执行结果逐项记录,未完整覆盖的条目保留未完成。
| 用例 | 验收内容 | 当前证据 |
|---|---|---|
| TC-OPS-0916-01 | 通道测试无签名、未报备URL及长短信;真实Gateway最终检查仍放行;普通客户保持原拦截 | 最终guard定向4项通过;真实Gateway待执行 |
| TC-OPS-0916-02 | 双端参数独立输入、原始UTF8签名、真实请求/响应、幂等键保留、重复点击/超时不自动重发 | 前端定向通过;真实浏览器待执行 |
| TC-OPS-0916-03 | 告警恢复、刷新、重启不清除;手动清除有审计且并发幂等;同周期不重现,新周期可见 | 真实PG通过;页面待执行 |
| TC-OPS-0916-04 | 监控刷新失败保留当前范围最后成功快照并标明非实时;网络恢复、路由切换与三尺寸 | 组件测试通过;真实浏览器待执行 |
| TC-OPS-0916-05 | 收尾第12次失败进入needs_review,自动出现在耐久告警;恢复后不自动消失 | 真实PG通过 |
RC-01/02/04/08/09/10/11目前仅部分本地证据:三段齐段、重复与双进程、事务回滚和过期接管、通知目标数与非零账务、迁移重放;尚不能标整条矩阵通过。RC-03/05/06/07/12的完整组合、网络故障/进程重启、修复前后性能对比须独立补验。无真实运营商流量,未声明容量提升。