test(M00): 补充MQTT高级冒烟入口

This commit is contained in:
Codex
2026-06-16 13:54:48 +08:00
parent 289e185cd5
commit 874e811e60
7 changed files with 150 additions and 12 deletions
+9 -3
View File
@@ -41,6 +41,9 @@ bash scripts/dev/wsl/mqtt-smoke.sh
- 允许订阅 Topic 连接检查。
- 错误密码拒绝。
- 越权订阅 Topic 探测。
- 可选 TLS 发布探测。
- 可选遗嘱消息观测探测。
- 可选重复消息发布,用于下游幂等验证取证。
如果未配置 `QIPAI_MQTT_USERNAME``QIPAI_MQTT_PASSWORD`,脚本会输出 `SKIP`,不得视为认证/ACL 已通过。
@@ -51,18 +54,21 @@ bash scripts/dev/wsl/mqtt-smoke.sh
- `QIPAI_MQTT_DENIED_SUBSCRIBE_TOPIC` 默认值为 `'$SYS/#'`,必须保留引号,避免 shell 把 `$SYS` 当作本地变量展开。
- `--check-config` 只确认本地账号配置存在,不打印口令,不执行 MQTT 连接。
- `QIPAI_MQTT_ENABLE_TLS_SMOKE=true` 时会对 `QIPAI_MQTT_TLS_PROTOCOL://QIPAI_MQTT_TLS_HOST:QIPAI_MQTT_TLS_PORT` 执行一次发布探测;本地自签证书可临时使用 `QIPAI_MQTT_TLS_INSECURE=true`,生产验收必须提供 CA/证书链证据。
- `QIPAI_MQTT_ENABLE_WILL_SMOKE=true` 时会尝试观测遗嘱消息;如果 MQTTX 退出路径被 Broker 视为正常断开,脚本会输出 `WARN`,仍需结合 Broker 和客户端故障日志验收。
- `QIPAI_MQTT_ENABLE_IDEMPOTENCY_SMOKE=true` 时会向同一 Topic 连续发布相同 `idempotencyKey` 的消息;脚本只证明重复消息已发出,最终幂等必须由后端/设备日志证明。
## 验收边界
端口监听正常只证明服务级可用,不能证明以下项目已完成:
- TLS 证书链和客户端校验。
- TLS 证书链和客户端校验;当前仅有可选发布探测入口
- MQTT 客户端认证账号实际可用性。
- 错误密码拒绝实际结果。
- ACL 越权拒绝实际结果。
- MQTT 3.1 / QoS 1 业务协议联调。
- 遗嘱消息。
- 重复消息幂等。
- 遗嘱消息;当前仅有可选观测探测入口
- 重复消息幂等;当前仅能发布重复消息,尚未接入下游消费断言
- 真实控制箱、门锁、插座执行结果。
## 账号记录规则