思考时间是什么
思考时间(think time)模拟用户操作间隔:缺少它会制造不真实的请求密度——RPS 虚高、后端压力失真。JMeter 用定时器、k6 用 sleep、Locust 用 wait_time 实现,取值应贴近真实用户行为分布,而不是拍一个固定秒数。
基本信息
| 作用 | 模拟操作间隔,避免请求密度失真 |
|---|---|
| 常见实现 | k6 sleep、JMeter 定时器、Locust wait_time |
| 取值依据 | 真实用户行为数据(会话日志、埋点) |
| 分布选择 | 均值加波动区间,优于固定值 |
| 与并发关系 | 间隔越长,同等并发下 RPS 越低 |
| 会话口径 | 含阅读、排队与跳转的真实占用时间 |
| 分布实现 | 在区间内取随机值,逼近真实波动 |
| 记录要求 | 间隔参数与取值依据随脚本归档 |
k6 中的间隔
k6 中的间隔
import { sleep } from 'k6';
export default function () {
http.get('https://example.com/');
sleep(1.5); // 固定值仅示意,真实分布更佳
}
// JMeter:定时器元件实现;Locust:wait_time实现对照
| 工具 | 实现方式 | 取值建议 |
|---|---|---|
| k6 | 迭代中调用 sleep | 随机区间代替固定值 |
| JMeter | 定时器元件挂线程组 | 按取样器粒度配置 |
| Locust | wait_time 定义等待 | between 取区间 |
| Gatling | pause 调用模拟停顿 | 按会话行为设定 |
典型使用场景
- 流量建模:按真实会话节奏压测,RPS 数字才有参照。
- 容量评估:间隔变化影响所需容量,评估先对齐模型。
- 回归对比:前后版本使用同一分布,结果才可比。
- 脚本评审:检查每条事务之间是否都留了间隔。
- 峰值估算:用间隔分布推算峰值窗口的真实强度。
- 新人培训:理解并发用户与 RPS 不是一回事。
- 对比报告:吞吐差异先核对两轮的间隔设置是否一致。
间隔用固定值会把结果理想化:按用户实际行为取分布更接近真实。
压测脚本不留间隔,得到的 RPS 远超真实行为强度。
会话级思考时间包含阅读与页面跳转,通常远超单个接口之间的间隔。
固定间隔适合冒烟基线:正式容量结论用分布更可信。
间隔过短,压测机负荷与请求密度都会偏离真实模型。