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

JMeter中如何将响应数组内的取值传递至下一个请求?

提取JSON数组中avatars的id值解决方案

方法1:JSON Extractor(最简便高效)

在返回目标JSON的HTTP请求下添加JSON Extractor,按以下配置填写:

  • 引用名称:avatar_id(后续请求用${avatar_id}调用该变量)
  • JSON Path表达式:$.avatars[0].id(明确指定取avatars数组第一个元素的id字段)
  • 匹配数字:填1或留空(表示获取第一个匹配结果)
  • 默认值:可填-1(提取失败时返回该值,方便排查问题)

添加完成后,可通过Debug Sampler查看avatar_id变量是否成功获取到131。

方法2:JSR223 PostProcessor(灵活可控)

使用Groovy脚本处理响应(Groovy在JMeter中性能最优),脚本内容如下:

import groovy.json.JsonSlurper

// 获取前一个请求的响应文本
def responseText = prev.getResponseDataAsString()
// 解析JSON
def jsonData = new JsonSlurper().parseText(responseText)
// 提取avatars数组第一个元素的id
def targetId = jsonData.avatars[0].id
// 将值存入变量,供后续请求使用
vars.put("avatar_id", targetId.toString())

排查之前提取失败的常见原因

  • 处理器位置错误:必须将后置处理器放在返回目标JSON的HTTP请求之后,前置处理器无法获取请求响应
  • JSON Path表达式错误:比如未指定数组索引[0],写成$.avatars.id会导致提取失败
  • 正则表达式逻辑错误:若用RegEx Extractor,正确的正则应为"avatars":\[{"id":(\d+),但JSON结构变化时容易失效,不推荐使用

内容的提问来源于stack exchange,提问作者Snehal Matharu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:16:12