5.8 KiB
5.8 KiB
TopFans 压测报告
📋 运行信息
| 项 | 值 |
|---|---|
| 生成时间 | 2026-06-15 21:06:41 CST |
| 压测开始 | 2026-06-15 21:05:10 CST |
| 压测结束 | 2026-06-15 21:05:38 CST |
| 总耗时 | 27s |
| 目标地址 | http://localhost:8080 |
| 测试场景 | S1, S2, S4 |
| 阶梯模式 | step (1,2,3) |
| JWT 签名密钥 | topfans-*** (前 8 位) |
| 监控模式 | off |
| 总请求数 | 54 |
| 总错误数 | 0 (0.00%) |
| 5xx 数 | 0 (0.00%) |
🎯 执行摘要
总览: ✅ 3 健康 / ⚠️ 0 警告 / 🚨 0 严重 (共 3)
🎉 所有场景通过健康阈值,系统可承载预期负载。
场景速览:
- ✅ S1 用户登录 — p99=96ms, err 0.00%
- ✅ S2 浏览资产详情 — p99=14ms, err 0.00%
- ✅ S4 资产铸造 (mint) — p99=14ms, err 0.00%
📊 总览表
| 场景 | 描述 | Total | Err | 5xx | P50ms | P95ms | P99ms | Maxms | 拐点 RPS | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| S1 | 用户登录 | 18 | 0 (0.00%) | 0 (0.00%) | 86 | 96 | 96 | 96 | — | ✅ |
| S2 | 浏览资产详情 | 18 | 0 (0.00%) | 0 (0.00%) | 10 | 14 | 14 | 14 | — | ✅ |
| S4 | 资产铸造 (mint) | 18 | 0 (0.00%) | 0 (0.00%) | 7 | 14 | 14 | 14 | — | ✅ |
说明: Err 包含 4xx + 5xx,5xx 是子集。错误率 = Err / Total。
🔬 跨场景瓶颈分析
✅ 无明显瓶颈,所有场景 P99 都在阈值内。
P99 / 阈值 比率 (从高到低):
- S1: 0.10x (96ms)
- S2: 0.03x (14ms)
- S4: 0.01x (14ms)
✅ S1 用户登录
📌 测试说明
| 项 | 值 |
|---|---|
| API | POST /api/v1/auth/login |
| 负载类型 | ✏️ 轻写 |
| 业务说明 | 用户身份认证,签发 JWT |
| 影响范围 | 🔴 所有用户必经路径,失败 = 用户进不来 |
📈 性能指标 vs 健康阈值
| 指标 | 实测 | 阈值 | 判定 |
|---|---|---|---|
| P50ms | 86 | ≤100 | ✅ |
| P95ms | 96 | ≤300 | ✅ |
| P99ms | 96 | ≤1000 | ✅ |
| Maxms | 96 | — | ℹ️ 参考 |
| 错误率 | 0.00% | ≤1.00% | ✅ |
| 5xx 率 | 0.00% | ≤0.10% | ✅ |
📍 拐点分析
✅ 拐点未触发 — 全程 3 个 stage 健康运行,最高 3 RPS p99=96ms。
🔢 阶梯结果
| Stage | TargetRPS | Total | Err | 5xx | P50ms | P95ms | P99ms | Maxms | 涨幅 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 3 | 0 | 0 | 94 | 98 | 98 | 98 | |
| 2 | 2 | 6 | 0 | 0 | 87 | 89 | 89 | 89 | -9% |
| 3 | 3 | 9 | 0 | 0 | 86 | 96 | 96 | 96 | +7% |
🎯 行动项
✅ 无需行动项 — 所有指标在阈值内。
📉 图表
✅ S2 浏览资产详情
📌 测试说明
| 项 | 值 |
|---|---|
| API | GET /api/v1/assets/{id} |
| 负载类型 | 📖 读 |
| 业务说明 | 高频读路径,典型缓存命中场景 |
| 影响范围 | 🟢 单用户最高频操作,影响页面加载体验 |
📈 性能指标 vs 健康阈值
| 指标 | 实测 | 阈值 | 判定 |
|---|---|---|---|
| P50ms | 10 | ≤50 | ✅ |
| P95ms | 14 | ≤150 | ✅ |
| P99ms | 14 | ≤500 | ✅ |
| Maxms | 14 | — | ℹ️ 参考 |
| 错误率 | 0.00% | ≤1.00% | ✅ |
| 5xx 率 | 0.00% | ≤0.10% | ✅ |
📍 拐点分析
✅ 拐点未触发 — 全程 3 个 stage 健康运行,最高 3 RPS p99=14ms。
🔢 阶梯结果
| Stage | TargetRPS | Total | Err | 5xx | P50ms | P95ms | P99ms | Maxms | 涨幅 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 3 | 0 | 0 | 14 | 31 | 31 | 31 | |
| 2 | 2 | 6 | 0 | 0 | 9 | 12 | 12 | 12 | -61% |
| 3 | 3 | 9 | 0 | 0 | 10 | 14 | 14 | 14 | +13% |
🎯 行动项
✅ 无需行动项 — 所有指标在阈值内。
📉 图表
✅ S4 资产铸造 (mint)
📌 测试说明
| 项 | 值 |
|---|---|
| API | POST /api/v1/assets/mints/precreate |
| 负载类型 | 🛠️ 重写 |
| 业务说明 | 写重路径:OSS 上传 + 签名 + 事务落库 |
| 影响范围 | 🟡 核心交易,影响创作者产出节奏 |
📈 性能指标 vs 健康阈值
| 指标 | 实测 | 阈值 | 判定 |
|---|---|---|---|
| P50ms | 7 | ≤300 | ✅ |
| P95ms | 14 | ≤800 | ✅ |
| P99ms | 14 | ≤2000 | ✅ |
| Maxms | 14 | — | ℹ️ 参考 |
| 错误率 | 0.00% | ≤1.00% | ✅ |
| 5xx 率 | 0.00% | ≤0.10% | ✅ |
📍 拐点分析
✅ 拐点未触发 — 全程 3 个 stage 健康运行,最高 3 RPS p99=14ms。
🔢 阶梯结果
| Stage | TargetRPS | Total | Err | 5xx | P50ms | P95ms | P99ms | Maxms | 涨幅 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 3 | 0 | 0 | 12 | 15 | 15 | 15 | |
| 2 | 2 | 6 | 0 | 0 | 7 | 12 | 12 | 12 | -18% |
| 3 | 3 | 9 | 0 | 0 | 7 | 14 | 14 | 14 | +14% |
🎯 行动项
✅ 无需行动项 — 所有指标在阈值内。
📉 图表
📎 附录
健康阈值说明
- P50/P95/P99: 百分位延迟 (毫秒),值越小越好
- 错误率: 4xx+5xx 请求占比,健康 < 1%
- 5xx 率: 服务端错误率,健康 < 0.1%
- 拐点: 阶梯测试中,p99 相对前一 stage 涨幅 > 50% 的第一个 stage
文件清单
reports/
├── final-report.md (本文件)
├── baseline.csv (Excel 可打开的汇总)
├── s1.json
├── s1.png
├── s2.json
├── s2.png
├── s3.json
├── s3.png
├── s4.json
├── s4.png
├── s5.json
├── s5.png
├── s6.json
├── s6.png
├── s7.json
├── s7.png
如何复现
cd /opt/topfans/loadtest
./loadgen --cmd=run --scenarios=S1,S2,S4 --stage=step --step-schedule='1,2,3' \
--target=http://localhost:8080 \
--monitor=off \


