[T-03][low] 压测工具只是连接骨架(MQTT 3.1.1、不带认证、不收发),无法执行 PRD 第 8 节的规模与吞吐验收 #64

Closed
opened 2026-09-30 13:57:08 +08:00 by nixevol · 1 comment
Owner

编号:T-03 严重级:low 工作线:测试与文档(test/load) 来源:总审查人核实
依赖:T-01 (#3) 被依赖:无

现象与影响

test/load/mqtt_bench.go 只建立 MQTT 3.1.1 连接(buildConnect,第 106-129 行),不带用户名密码,只等 CONNACK,不做 hello、收发和确认。NixMsg 要求端认证,这个工具连上就会被拒;即使放行,也测不出 PRD §8 的任何指标。长时间压测本轮按负责人要求不跑,但工具本身不可用,将来也无法执行。

文档依据

PRD §8:单机 1000 端同时在线;持续每秒 200 条单聊提交;一条 1000 人群消息 5 秒内完成推送排队;双方在线小于 1 KiB 消息 P95 小于 300 毫秒。

解决方案

  1. 改为 MQTT 5,按 DEVELOPMENT §5 的 CONNECT 规则(ClientID=Username=端编号、CleanStart、心跳 30),完成 hello。
  2. 提供端的准备方式:通过管理 API 批量开通,或开放注册后自助注册;支持复用已开通的端。
  3. 场景:N 个在线连接保持;按目标速率单聊 send/ack;1000 人群发一条并统计推送排队耗时。
  4. 输出:提交与送达的 P50/P95/P99、错误码分布、连接掉线数。
  5. 在 test/load/README.md 写用法;不进 CI。

改动文件

test/load/*。

交互 / 冲突说明

独立目录,无冲突。

验收与测试

本地用 50 个连接、每秒 20 条跑 1 分钟能出报告;工具自身有最小单测。


复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。

**编号**:T-03 **严重级**:low **工作线**:测试与文档(test/load) **来源**:总审查人核实 **依赖**:T-01 (#3) **被依赖**:无 ### 现象与影响 `test/load/mqtt_bench.go` 只建立 MQTT 3.1.1 连接(`buildConnect`,第 106-129 行),不带用户名密码,只等 CONNACK,不做 hello、收发和确认。NixMsg 要求端认证,这个工具连上就会被拒;即使放行,也测不出 PRD §8 的任何指标。长时间压测本轮按负责人要求不跑,但工具本身不可用,将来也无法执行。 ### 文档依据 PRD §8:单机 1000 端同时在线;持续每秒 200 条单聊提交;一条 1000 人群消息 5 秒内完成推送排队;双方在线小于 1 KiB 消息 P95 小于 300 毫秒。 ### 解决方案 1. 改为 MQTT 5,按 DEVELOPMENT §5 的 CONNECT 规则(ClientID=Username=端编号、CleanStart、心跳 30),完成 hello。 2. 提供端的准备方式:通过管理 API 批量开通,或开放注册后自助注册;支持复用已开通的端。 3. 场景:N 个在线连接保持;按目标速率单聊 send/ack;1000 人群发一条并统计推送排队耗时。 4. 输出:提交与送达的 P50/P95/P99、错误码分布、连接掉线数。 5. 在 `test/load/README.md` 写用法;不进 CI。 ### 改动文件 `test/load/*`。 ### 交互 / 冲突说明 独立目录,无冲突。 ### 验收与测试 本地用 50 个连接、每秒 20 条跑 1 分钟能出报告;工具自身有最小单测。 --- <sub>复审基线:main `4059a15`(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。</sub>
nixevol added the P3-lowlane/test-docsreview-2026-09-30 labels 2026-09-30 13:57:08 +08:00
Author
Owner

已合入 origin/main 0c9b459。落地提交 c72d1f0 fix: 压测客户端改为 MQTT 5 并完成 hello 与收发统计 (#64)。

已合入 origin/main `0c9b459`。落地提交 `c72d1f0` fix: 压测客户端改为 MQTT 5 并完成 hello 与收发统计 (#64)。
Sign in to join this conversation.