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

JMeter如何将JSON提取器获取的${variable}_all按每组50个拆分参数化

实现方案

步骤1:确认JSON提取器输出变量

JMeter的JSON提取器匹配到多个值后,默认会生成两个固定变量:

  • ${变量名}_all:所有匹配值用英文逗号拼接的字符串
  • ${变量名}_matchNr:匹配到的总数量

步骤2:用JSR223 PostProcessor拆分分组

在JSON提取器同级的请求下方,添加JSR223 PostProcessor,选择Groovy语言(性能远高于BeanShell),写入以下代码:

// 按需修改配置项
def maxGroupSize = 50
def sourceVarPrefix = "variable" // 替换为你JSON提取器中设置的引用名称

// 读取提取结果
def allValues = vars.get(sourceVarPrefix + "_all")?.split(",")
def totalCount = vars.get(sourceVarPrefix + "_matchNr") as int

if (allValues == null || totalCount == 0) {
    log.warn("未匹配到任何有效值,跳过分组")
    return
}

// 按上限拆分分组
def valueGroups = []
def tempList = []
allValues.each { item ->
    tempList.add(item.trim())
    if (tempList.size() == maxGroupSize) {
        valueGroups.add(new ArrayList(tempList))
        tempList.clear()
    }
}
// 剩余不足50条的单独成组
if (tempList.size() > 0) {
    valueGroups.add(tempList)
}

// 分组结果存入JMeter变量供后续调用
vars.putObject("splitGroups", valueGroups)
vars.put("groupTotal", valueGroups.size() as String)

不要勾选“将参数存入变量”选项,避免额外性能损耗。

步骤3:添加循环控制器遍历分组

在JSR223 PostProcessor后添加循环控制器,循环次数设置为${groupTotal},遍历所有拆分好的分组。

步骤4:组装当前分组的请求参数

在循环控制器内部添加JSR223 PreProcessor,将当前循环的分组转为你需要的参数格式:

def allGroups = vars.getObject("splitGroups")
// 注意将代码中的「循环控制器」替换为你实际的控制器命名
def currentLoopIndex = vars.get("__jm__循环控制器__idx") as int
def currentGroup = allGroups.get(currentLoopIndex)

// 示例1:转为逗号分隔的字符串,适合普通表单参数
vars.put("currentGroupStr", currentGroup.join(","))
// 示例2:转为JSON数组格式,适合JSON类型请求体
vars.put("currentGroupJson", new groovy.json.JsonBuilder(currentGroup).toPrettyString())

步骤5:参数化目标API请求

在循环控制器内部添加需要调用的API,直接引用上一步生成的变量即可,比如请求参数填${currentGroupStr}或者${currentGroupJson},执行时会自动按分组逐批发起请求。

注意事项

  • 如果需要按分组内的单个值循环请求,可以在循环控制器内嵌套ForEach控制器,输入变量前缀填你原有的变量名,起始索引填${__groovy(ctx.getVariables().get("__jm__循环控制器__idx") as int * 50,)},结束索引填${__groovy((ctx.getVariables().get("__jm__循环控制器__idx") as int +1)*50 -1,)}即可。
  • 代码中的变量名、控制器名称要和测试计划中的实际命名对应,避免变量读取失败。

内容的提问来源于stack exchange,提问作者Nilesh Gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:36:03