如何在JMeter中从数组格式响应读取值并赋值给变量
在JMeter中从数组格式的API响应提取值并赋值给变量
你的API响应是包含单个对象的JSON数组:[{"data1":763,"data2":"jhgf"}],以下是两种常用的提取方法:
方法一:使用JSON Extractor(推荐)
这是JMeter内置的专门处理JSON响应的元件,操作简单:
- 右键点击目标请求 -> 添加 -> 后置处理器 -> JSON Extractor
- 配置参数:
- 引用名称:输入要生成的变量名,比如
data1_value或data2_value - JSON Path表达式:
- 提取
data1的值:$[0].data1($表示根节点,[0]取数组第一个元素,.data1指定字段) - 提取
data2的值:$[0].data2
- 提取
- 匹配数字:填
1(表示只提取第一个匹配结果) - 默认值:可填
NOT_FOUND(提取失败时变量会被设为该值,避免空变量报错)
- 引用名称:输入要生成的变量名,比如
- 配置完成后,后续请求直接用
${data1_value}或${data2_value}即可引用变量。
方法二:使用JSR223 PostProcessor(灵活自定义)
如果需要更复杂的逻辑处理,可用Groovy脚本提取:
- 右键点击目标请求 -> 添加 -> 后置处理器 -> JSR223 PostProcessor
- 在脚本框中输入以下代码:
import groovy.json.JsonSlurper // 获取响应内容 def responseBody = prev.getResponseDataAsString() // 解析JSON数组 def jsonArray = new JsonSlurper().parseText(responseBody) // 提取值并赋值给变量 vars.put("data1_value", jsonArray[0].data1.toString()) vars.put("data2_value", jsonArray[0].data2)
- 后续请求同样通过
${data1_value}、${data2_value}引用变量。
内容的提问来源于stack exchange,提问作者CodeGirl
相关产品推荐
相关产品推荐

