JMeter教程:如何从Base64解码后的JSON中提取lt字段值
从Base64解码后的JSON中提取指定字段值
我已通过BeanShell后置处理器完成Base64解码,代码如下:
import org.apache.commons.codec.binary.Base64; vars.put("decoded_response", new String(Base64.decodeBase64("eyJsdCI6ICJUa246ODY3MzYxYTgtY2FlZi00YzkxLTgwNjQtYTczMWUyNTg4N2VkIn0=")));
解码后得到结果:
decoded_response={"lt": "Tkn:867361a8-caef-4c91-8064-a731e25887ed"}
请问如何从中提取lt字段的值?
方法一:在BeanShell后置处理器中直接解析JSON
在现有解码代码后添加JSON解析逻辑,借助JMeter内置的org.json.JSONObject工具提取字段:
import org.apache.commons.codec.binary.Base64; import org.json.JSONObject; // 解码Base64数据 String decodedStr = new String(Base64.decodeBase64("eyJsdCI6ICJUa246ODY3MzYxYTgtY2FlZi00YzkxLTgwNjQtYTczMWUyNTg4N2VkIn0=")); vars.put("decoded_response", decodedStr); // 解析JSON并提取lt字段 JSONObject jsonObj = new JSONObject(decodedStr); String ltValue = jsonObj.getString("lt"); vars.put("lt_value", ltValue); // 将提取的值存入JMeter变量,后续可通过${lt_value}引用
方法二:使用JMeter JSON提取器组件
无需修改BeanShell代码,单独添加JSON提取器即可:
- 右键当前请求 → 添加 → 后置处理器 → JSON提取器
- 配置参数:
- 引用名称:填写存储结果的变量名(如
lt_value) - JSON Path表达式:输入
$.lt(定位lt字段) - 匹配数字:填
1(取第一个匹配结果) - 缺省值:可设置提取失败时的默认值(如
null)
- 引用名称:填写存储结果的变量名(如
该组件会自动读取decoded_response变量中的JSON内容,提取lt字段值并存入指定变量。
内容的提问来源于stack exchange,提问作者Muthu
相关产品推荐
相关产品推荐

