主题
XHIM 服务端容量测试
k6_smoke.js 是可复现的 HTTP 基线,不代表任何公开容量数字。运行前由管理 API 准备测试账号和 Token,然后:
bash
k6 run \
-e XHIM_BASE_URL=https://im-load.example.com \
-e XHIM_TOKEN_FILE=/secure/path/tokens.txt \
-e XHIM_CONVERSATION_ID=load-conversation \
-e XHIM_VUS=100 \
-e XHIM_DURATION=60m \
-e XHIM_SUMMARY_PATH=/secure/evidence/target-summary.json \
server/load/k6_smoke.jstokens.txt 每行使用 token|account_id|user_id,且只允许压测租户,不得使用 生产 Token。测试 报告必须记录服务版本/commit、实例和数据库规格、网络拓扑、VU、消息大小、 持续时间、p50/p95/p99、错误率、数据库/连接池/CPU/内存/磁盘与瓶颈。
正式门禁参数在 capacity-plan.json,证据结构在 capacity-evidence.template.json。把 k6 Summary、Grafana/Prometheus 导出、 故障注入日志等保存到容量 JSON 同级的 capacity-observability/,并在 observability_artifacts 中逐项填写相对路径和小写 SHA-256。外部 URL、 符号链接、路径穿越、缺失文件或 Hash 不一致都会被正式门禁拒绝;通过后这些 文件会安全复制到最终发行证据根。在正式容量报告中依次执行:
- 15 分钟校准;
- 目标峰值 60 分钟;
- 2 倍峰值 30 分钟;
- 目标负载 24 小时;
- WebSocket 断连风暴、PostgreSQL 切换、Push/对象/RTC Provider 故障注入。
独立预检示例:
bash
scripts/reporting/verify_capacity_report.py \
server/load/capacity-plan.json \
/secure/load-run/capacity-evidence.json \
--version 1.0.0 --commit <完整 Git Commit> \
--artifact-root /secure/load-run