如何在JMeter中循环使用JSON提取器获取的设备编号数组?
实现循环遍历设备编号创建工单的方法
在JMeter里要实现遍历所有获取到的设备编号、循环执行POST请求,用ForEach控制器是最直接的方案,步骤如下:
1. 配置ForEach控制器
右键你的线程组 → 添加 → 逻辑控制器 → ForEach控制器,然后在控制器的配置面板里填写这些参数:
- 输入变量前缀:填
equipmentNumber(对应你JSON Extractor设置的变量名前缀,匹配生成的equipmentNumber_1、equipmentNumber_2...格式变量) - 输出变量名称:自定义一个变量名,比如
currentEqNo(后续POST请求里用这个变量调用当前循环的设备编号) - 勾选Use all available indices:自动识别所有匹配到的设备编号数量,无需手动填写起止索引
- 不要勾选Add "_" before number:因为你的变量名已经是「前缀_数字」的格式
2. 调整POST请求
把需要循环执行的POST请求拖到ForEach控制器下方,然后在请求参数里将原来的${equipmentNumber_1}替换为${currentEqNo}。
备选方案:Loop Controller + 函数组合
如果更习惯用Loop Controller,也可以采用这种方式:
- 添加Loop Controller,设置循环次数为
${equipmentNumber_matchNr}(这是JSON Extractor自动生成的变量,记录了匹配到的设备编号总数) - 在POST请求的参数里使用
${__V(equipmentNumber_${__counter(,)})}:__counter(,)会在每次循环时自动递增计数__V()函数用来解析拼接后的变量名(比如第一次循环解析为equipmentNumber_1,第二次为equipmentNumber_2)
以上两种方式都能实现依次遍历所有设备编号、循环创建工单的需求。
内容的提问来源于stack exchange,提问作者Valay Bhatt
相关产品推荐
相关产品推荐

