测试
tip
- QPS=VU/RT
- VU=QPS*RT
- RT=VU/QPS
- QPS=Concurrency/ResponseTime
- Concurrency=VU - Virtual User
- ResponseTime=Latency
- e.g. 1000/100ms = 10 QPS
- 反之:
- 3000/0.5=6000 VU - 期望 QPS 3000, latency 0.5ms, 需要 6000 并发
- 1500/0.5=3000 VU - 期望 QPS 1500, latency 0.5ms, 需要 3000 并发
- DAU - Daily Active User - 日活跃用户 - 日活
- DAU -> UV - 日活跃用户推导并发
- 峰值时间段
- 单次时常
- 使用间隔
- UX -> RT - 用户体验决定响应时间
- 区分业务场景
- 即时响应(<100ms)
- 搜索自动补全、按钮点击反馈等交互
- 流畅响应(100-300ms)
- 页面和内容加载
- 前端静态,组件加载初始化
- 乐观更新
- 可接受的响应(300-1000ms)
- 一般后台操作,如提交表单
- 过长响应(>1000ms)
- 用户会感到延迟,影响体验。
- 即时响应(<100ms)
- 交互接口考虑 100-300ms
- 一般接口考虑 500ms
- 区分业务场景
- 参考
Load Test
- virtual users (VUs) - 模拟用户并发场景
- requests per second - RPS/QPS - 模拟原始的请求,真实的吞吐量
- Latency - 响应时间
- Availability - 可用性
- SLOs - Service Level Objectives - 服务水平目标
- SLIs - Service Level Indicators - 服务水平指标
- SLAs - Service Level Agreements - 服务水平协议
Why load test
- 验证预期流量下的可靠性
- 发现系统问题,探测系统上线
测试类型
- Breakpoint testing - 断点测试 - 逐步增加负,发现系统的瓶颈
- Load testing - 平均负载测试 - 典型负载验证系统功能
- Smoke testing - 冒烟测试 - 最小负载验证系统功能
- Soak testing - 浸泡测试 - 长时间负载,系统在什么节点出现降级
- Spike testing - 峰值测试 - 突发负载验证系统功能
- Stress testing- 压力测试 - 峰值负载验证系统功能
avg vs median
- 平均延时(avg)
- 全局的平均响应时间
- 容易受极值影响
- 中位数延时(median)
- 典型的响应时间
- 除异常情况的干扰