JMeter中如何根据ProductCode数组长度发起对应次数的动态URL请求
JMeter 按JSON数组元素批量发起请求实现步骤
1. 提取ProductCode数组为JMeter变量
分两种场景处理:
- 若JSON从上游接口响应获取:
在对应HTTP请求下新增JSON提取器,配置参数:- 引用名称:
productCode - JSON Path 表达式:
$.ProductCode[*] - 匹配数字:
-1(提取所有匹配结果)
- 引用名称:
- 若JSON为本地固定数据:
新增JSR223 前置处理器,写入如下Groovy代码:// 解析固定JSON def targetJson = new groovy.json.JsonSlurper().parseText('{"ProductCode": ["V28334","V16P2","V16P3", "test", "fake"]}') def codeList = targetJson.ProductCode // 存储数组长度供循环调用 vars.put("productCode_matchNr", codeList.size().toString()) // 按序号存储每个产品编码 codeList.eachWithIndex { code, index -> vars.put("productCode_" + (index + 1), code) }
执行完成后,会生成productCode_1、productCode_2...productCode_N格式的变量,同时productCode_matchNr存储数组总长度。
2. 配置循环控制器遍历数组
新增循环控制器,将循环次数设置为${productCode_matchNr},即可自动匹配数组长度循环对应次数。
3. 配置批量HTTP请求
在循环控制器下新增HTTP请求,核心配置如下:
- 协议:
https - 服务器名称/IP:填写你接口的实际域名
- 路径:
/你的接口前缀/${__V(productCode_${loopIndex})}
路径变量拼接说明:你可以提前在循环控制器下新增计数器,配置起始值为1、递增1、引用名称为
loopIndex,即可简化变量拼接逻辑,无需处理循环下标从0开始的问题。
如果需要验证参数是否正确,可以在HTTP请求下新增调试取样器,运行后查看每次循环的产品编码是否匹配预期。
内容的提问来源于stack exchange,提问作者Ramon
相关产品推荐
相关产品推荐

