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

JMeter中Counter、Loop Controller:响应头提取与循环配置问题

JMeter响应头提取与循环配置实现方案

一、单个正则表达式提取器提取三个数值

在HTTP请求的后置处理器中添加正则表达式提取器,配置如下:

  • 引用名称:range_info
  • 正则表达式:range: items=(\d+)-(\d+)/(\d+)
  • 模板:$1$$2$$3$(JMeter会自动为每个捕获组生成对应变量)
  • 匹配数字:1(仅匹配响应头中第一个符合格式的range字段)

配置完成后,自动生成三个变量:

  • ${range_info_1}:对应起始值(如0)
  • ${range_info_2}:对应结束值(如99)
  • ${range_info_3}:对应总条目数(如3876)

二、计算循环次数并配置循环逻辑

1. 计算循环次数

在正则表达式提取器后添加JSR223 后置处理器,选择Groovy语言,输入以下脚本计算向上取整后的循环次数:

def totalItems = vars.get('range_info_3') as int
def loopTimes = (int) Math.ceil(totalItems / 100)
vars.put('loop_count', loopTimes.toString())

执行后生成变量${loop_count},值为39(对应3876条数据的向上取整结果)。

2. 配置循环控制器

添加循环控制器,将循环次数设置为${loop_count},后续HTTP请求和计数器均放在该控制器下。

3. 配置计数器生成范围起始值

在循环控制器内添加计数器元件,配置如下:

  • 起始值:0
  • 递增:100
  • 最大值:${__javaScript(${range_info_3}-1,)}(避免最后一次起始值超出总条目数)
  • 引用名称:current_start

4. 动态设置HTTP请求头

在后续HTTP请求的请求头管理器中,添加range头,值设置为:

items=${current_start}-${__javaScript(${current_start}+99,)}

每次循环会自动生成对应范围:0-99、100-199……3800-3899,完成批量请求。


内容的提问来源于stack exchange,提问作者harshit gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:40:16