压测模式
场景列表确定压测的对象,本页确定压测的强度、时长与判定标准, 这一整套配置称为一种压测模式。术语定义见基本概念。
同一组业务链路施加不同强度,回答的是不同问题。共七种模式,按客户诉求选取。
工具的配置目录为 profiles/,单个文件即一种压测模式。
本章正文统一用「压测模式」,涉及文件路径时保留原名。
一、七种模式速查
| 模式 | 回答的问题 | 默认强度 | 用于验收 |
|---|---|---|---|
smoke | 脚本、认证与测试数据是否正确 | 1 VU 执行 5 次 | 否,前置检查 |
baseline | 低竞争条件下的固有性能 | 5 VU 持续 5 分钟 | 否,作为对比基准 |
load | 预期业务量下的响应能力 | 递增至 50 VU,稳态 15 分钟 | 是,验收主场景 |
throughput | 能否支撑目标吞吐量 | 按固定到达率加压 | 是,吞吐口径验收 |
stress | 容量拐点位置与降载后的恢复能力 | 50 → 100 → 150 阶梯递增 | 否,容量规划 |
spike | 突发流量下的抗冲击与自愈能力 | 20 VU 瞬时增至 300 后撤回 | 否,风险评估 |
soak | 长时间运行是否持续劣化 | 20 VU 持续 2 小时 | 否,上线前验证 |
推荐执行顺序:smoke → baseline → load(验收),
按需补充 soak / stress / spike。
多数交付场景只需前三种。后四种针对特定风险,客户未提出对应诉求时不必执行—— 每一轮均占用时间与环境资源。
二、逐个说明
smoke — 验证脚本可用性
不测性能。每次修改配置、更换环境或账号后的第一步。
- 验证内容:认证是否通过、请求路径是否正确、测试数据是否存在。
- 使用方式:通过后方可继续加压;失败应先修正脚本配置。
1 个 VU 执行 5 次迭代的耗时不足以支撑分位数统计,用于判定 SLA 会产生误报。 因此 smoke 模式下产品红线自动降级为「仅观察」。
baseline — 测定性能基线
5 个 VU 恒定运行 5 分钟,几乎无并发竞争,测得的是接口本身 的处理能力。
- 执行时机:smoke 通过后、正式加压前;版本升级后的回归对比。
- 使用方式:归档为性能基线。后续
load出现慢请求时回溯比对—— 基线即慢说明接口自身效率低;基线正常而加压后劣化则为并发问题 (排队、锁竞争或资源不足)。
该步骤常被省略,导致 load 出现问题时无法判断成因。建议不要省略。
load — 验证预期业务量下的响应能力
验收主场景。 分五段:2 分钟递增至 10 VU → 3 分钟至 30 → 5 分钟至 50 → 稳态 15 分钟 → 3 分钟降至 0。
- 判定:这是预期应通过的测试。未通过即表示无法支撑预期业务量,需优化或扩容。
- 必须调整:将目标并发替换为客户实际的峰值在线用户数,默认值 50 仅为模板值。
读取报告时以稳态 15 分钟的分阶段数据为准,不要只看整轮聚合值。
throughput — 验证目标吞吐量
客户验收指标为吞吐量(如「支撑 200 TPS」)而非在线人数时使用本模型。
与 load 的区别:
| 模型 | 控制量 | 系统响应变慢时 |
|---|---|---|
load | 并发用户数 | 发起速率随之下降,压力自动回落,测不出真实上限 |
throughput | 每秒发起次数 | 速率保持不变,处理不及时则累计 dropped_iterations |
因此本模型增加一条硬判据:dropped_iterations == 0。
出现迭代丢弃即表示无法支撑目标吞吐量。
到达率模型下需要足够的 VU 才能按时发出请求。VU 不足时工具会丢弃迭代,
而 dropped_iterations == 0 正是核心判据——配置过低即判失败,
表面看是系统无法支撑目标吞吐量,实际是压测端资源不足。
标定方法见并发公式。