JMeter 定时器与断言是什么
JMeter 的定时器控制请求节奏:固定定时器、高斯随机定时器、恒定吞吐量定时器(按目标吞吐自动调节发送速率)、同步定时器(集合点)。断言把「只发请求」升级为「带验证的压测」:响应断言、JSON 断言、持续时间断言分别校验内容、结构与单请求耗时。压测不带断言时,错误响应会被计入成功吞吐,结论失真。
基本信息
| 定时器类型 | 固定、高斯随机、恒定吞吐量、同步定时器 |
|---|---|
| 断言类型 | 响应断言、JSON 断言、持续时间断言、大小断言 |
| 作用域规则 | 对所在线程组、控制器与请求生效,层级决定影响范围 |
| 关键配置 | 恒定吞吐量定时器设目标吞吐与计算基准(线程或进程) |
| 报告口径 | 断言失败应单列统计,不计入成功吞吐 |
典型使用场景
- 稳态压测:用恒定吞吐量让请求速率贴合目标 RPS(每秒请求数)
- 逼近真实用户:高斯随机定时器模拟思考时间的自然波动
- 瞬间并发:同步定时器制造集合点,模拟同时抢购或同时提交
- 正确性并检:压测同时用响应断言核对状态码与关键字段
- 慢接口识别:持续时间断言把单请求耗时上限固化在脚本里
- 结果可信度审查:核对断言失败是否被错误计入成功吞吐
脚本结构示意
脚本结构示意
线程组(20 线程,循环 50 次)
├── HTTP 请求:下单接口
├── 响应断言:状态码 200 且响应包含 orderId
├── JSON 断言:$.code 等于 0
├── 持续时间断言:单请求不超过 800 ms
└── 恒定吞吐量定时器:目标 100 RPS
# 断言失败集中出现在哪一步,比总吞吐数字更能说明问题定时器与断言对照
| 名称 | 作用 | 注意点 |
|---|---|---|
| 固定定时器 | 请求间等待固定毫秒 | 基线稳定但不像真实用户 |
| 高斯随机 | 等待时间按分布波动 | 更接近真实节奏 |
| 恒定吞吐量 | 按目标吞吐调节发送 | 注意计算基准与作用域 |
| 响应断言 | 校验状态码与文本 | 防止错误计入成功 |
| 持续时间断言 | 单请求耗时上限 | 用于慢请求定位 |
定时器与断言都受层级影响:放在线程组级会影响组内全部请求,放在单个请求下只影响该请求,层级放错会静默改变压测节奏——建议先用小规模运行核对实际生效位置。
同步定时器(集合点)会把线程攒够一批再同时释放,模拟瞬时并发;但它会人为放大峰值,只适合验证冲击场景,不适合测稳态容量。