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

JMeter中响应body为字符串类型时如何提取JSON中的Session值

解决方案:从嵌套JSON字符串中提取Session编号

问题分析

接口返回的body字段是JSON格式的字符串,而非直接可解析的JSON对象,因此常规的JSON提取器无法直接读取其中的session值,需要先对body字符串进行二次解析。


可行方案

方案1:使用脚本后置处理器(以JMeter为例)

通过Groovy脚本先解析外层响应,再解析body字符串:

import groovy.json.JsonSlurper

// 解析外层响应JSON
def outerResponse = new JsonSlurper().parseText(prev.getResponseDataAsString())
// 解析body字段中的JSON字符串
def bodyJson = new JsonSlurper().parseText(outerResponse.body)
// 将session值存入变量
vars.put("session_id", bodyJson.session)

方案2:使用正则表达式提取器

利用Session编号的UUID格式特征,直接从整个响应内容中匹配:

  • 正则表达式:"session":\s*"([0-9a-f-]+)"
  • 模板:$1$
  • 匹配序号:1

方案3:使用Postman内置脚本

在Postman的Tests标签中添加以下代码:

// 解析外层响应
let response = pm.response.json();
// 解析body字符串为JSON对象
let bodyData = JSON.parse(response.body);
// 将session存入环境变量
pm.environment.set("sessionId", bodyData.session);

内容的提问来源于stack exchange,提问作者Rohit Reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:40:32