You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter如何为循环迭代间设置延迟而非每个请求添加延迟?

解决JMeter循环后延迟的两种方案

方案1:用Test Action Sampler加延迟(最直观)

操作步骤很简单:

  • 打开你的Loop Controller(已设置循环10次),按顺序放好3个HTTP请求。
  • 在这3个请求的最后添加一个「Test Action Sampler」。
  • 将该Sampler的「Duration (ms)」设为2000——这样每次循环跑完3个请求后,会在这里等待2秒,再启动下一轮循环。
  • 若不需要最后一次循环结束后等待,给这个Test Action套一个「If Controller」,条件填写${__jexl3(${__jm__Loop Controller__idx} < 9,)}(注意把「Loop Controller」替换成你实际的循环控制器名称,idx是JMeter内置的循环索引,从0开始,前9次循环后触发延迟,第10次直接跳过)。

方案2:用JSR223 Timer做条件延迟(无额外采样器)

不想新增采样器的话,用JSR223 Timer更简洁:

  • 把「JSR223 Timer」作为Loop Controller的子元素,放在3个HTTP请求的后面。
  • 在脚本框中输入以下Groovy代码:
// 获取当前循环的索引(从0开始)
def loopIndex = vars.get("__jm__Loop Controller__idx") as Integer
// 非最后一次循环则延迟2秒
if (loopIndex < 9) {
    sleep(2000)
}
  • 这段代码会在每次循环的最后一个请求执行完成后判断,仅前9次循环结束后触发延迟,最后一次循环直接收尾。

避坑提醒

  • 不要把Timer直接放在Loop Controller外部,那样会在整个循环开始前等待2秒,完全不符合需求。
  • 使用方案1时,Test Action会被计入采样结果,若不想在报告中显示它,可以给它起个特殊名称(比如「循环后延迟」),之后在监听器中过滤掉,或直接忽略其统计数据。

内容的提问来源于stack exchange,提问作者Jagadeesh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:40:06