「短网址服务」性能测试点清单
短网址服务性能测试点清单
1. 短链跳转性能
-
目标:跳转延迟 ≤ 50ms(内网环境),单节点 QPS ≥ 5k。
-
测试点:
- 单用户访问短链 → 响应时间统计(首字节、总耗时)。
- 并发 100/1000/5000 用户同时访问同一短链。
- 并发 100/1000/5000 用户同时访问不同短链(随机)。
- Redis 缓存命中时延迟统计 vs 未命中时延迟统计。
-
预期结果:
- P95 响应时间 ≤ 100ms
- 缓存命中率 ≥ 90%
2. 短链生成性能
-
目标:单节点短链生成接口 QPS ≥ 500,平均延迟 ≤ 200ms。
-
测试点:
- 单用户连续生成短链(长链随机)。
- 并发 100/1000 用户生成短链。
- 自定义短码场景并发(冲突检测性能)。
-
预期结果:
- P95 响应时间 ≤ 300ms
- 短码冲突率 ≈ 0
3. 数据库性能
-
目标:写入性能可支撑 ≥ 10w 条短链/天。
-
测试点:
- 批量插入长链(1w、10w)。
- 批量查询短链(分页、模糊搜索)。
- 统计聚合查询性能(按日统计 PV/UV)。
-
预期结果:
- 写入 TPS ≥ 2000/s
- 分页查询延迟 ≤ 500ms
- 聚合统计延迟 ≤ 2s
4. 统计系统性能
-
目标:支持百万级点击日志写入,统计延迟 ≤ 5s。
-
测试点:
- 并发 1000 用户持续访问短链,检查统计落库延迟。
- Kafka/消息队列消费速率测试(若采用异步采集)。
- PV/UV 精确度验证(HyperLogLog 误差 < 1%)。
-
预期结果:
- 统计落库延迟 ≤ 5s
- 聚合结果与实际误差 ≤ 1%
5. API 限流与高并发
-
目标:API 限流准确,防止滥用。
-
测试点:
- 单用户高频调用
shorten API
(> 100 req/min)。 - 多用户同时调用,确保不同用户限流隔离。
- API Key 过期后继续调用。
- 单用户高频调用
-
预期结果:
- 超限请求返回
130003
(API 调用超限)。 - 未超限用户不受影响。
- 超限请求返回
6. 缓存 & 容灾
-
目标:保证高可用,即使缓存/数据库部分不可用。
-
测试点:
- 短链访问时手动清空 Redis,验证回源 DB 成功率。
- 短链访问时模拟 DB 挂掉,验证错误返回(100003)。
- Redis 恢复后命中率回升情况。
-
预期结果:
- Redis 不可用时,短链依然可访问(回源 DB)。
- DB 不可用时,短链访问失败,返回「系统开小差了」。
7. 压力/稳定性测试
-
目标:长时间运行不崩溃,不内存泄漏。
-
测试点:
- 持续 24 小时压测(模拟 1000 QPS 短链访问)。
- 内存占用曲线 → 平稳,不无限增长。
- CPU 占用率 ≤ 70%。
-
预期结果:
- 服务稳定可用,无异常重启。
- 平均延迟保持在指标范围内。
8. 前端性能
-
目标:用户体验流畅,页面交互延迟可接受。
-
测试点:
- 首页短链生成响应时间 ≤ 1s。
- Dashboard 列表加载延迟 ≤ 1s。
- 图表渲染时间 ≤ 2s(数据量 ≤ 1w 条)。
-
预期结果:
- 前端页面交互流畅,图表渲染不卡顿。
工具
- 接口压测:JMeter / Locust / k6
- 服务监控:Prometheus + Grafana(延迟、QPS、错误率)
- 日志采集:ELK / Loki
- 数据库观测:慢查询日志、性能 Schema
📌 这样一份 性能测试点清单,可以覆盖短网址服务的非功能需求:
- 跳转延迟
- 短链生成效率
- 数据库读写性能
- 统计准确性
- 限流/容灾机制
- 长时间稳定性