Jmeter之beanshell多种提取嵌套Json数据
Posted lht3347
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter之beanshell多种提取嵌套Json数据相关的知识,希望对你有一定的参考价值。
前言
在之前的文章写道,Beanshell的简单提取json格式数据的用法。下面针对嵌套的json数据进行实践。
附上链接:Jmeter之BeanShell PostProcessor使用
对应jar包下载链接:
https://pan.baidu.com/s/1MXjpRrzUITfXHBiIcm0a0w
提取码:sy86
实例操作
"bus_data":
[
"authCode":"0hx0ll",
"createTime":"2020-12-12 17:37:23",
"bus_phone":"15266888866",
"info":"你要么努力向上爬,要么烂在社会最底层的泥淖里。"
],
"authType":"1",
"message":"GetAuthCode successful",
"bus_code":"10001"
方法一
- 采用org.json的jar包对json数据进行解析提取bus_data参数下的authCode参数的值。
附上代码,如下所示:import org.json.*; //导入json解析库 //获取请求返回值。赋予字符串String 变量 String response = prev.getResponseDataAsString(); //将string的值转换成成 Json 对象 JSONObject response_json = new JSONObject(response); //将提取出来的bus_data数据值转换成Json列表 JSONArray resp_bus_data = response_json.get("bus_data"); //提取json列表中的第一个值,并提取authCode参数的值转换成字符串,赋予变量名称authCode String authCode = resp_bus_data.get(0).get("authCode").toString(); //日志打印 log.info("提取的值为:"+authCode); //将取出来的变量值赋予局部变量code vars.put("code",authCode);
方法二
- 采用阿里提供的fastjson包对json数据进行解析提取bus_data参数下的authCode参数的值。
附上代码(代码意思与上述一样),如下所示:import com.alibaba.fastjson.*; String response = prev.getResponseDataAsString(); JSONObject jsonObject = JSONObject.parseObject(response); JSONArray jsonArray = jsonObject.get("bus_data"); String authCode = jsonArray.get(0).get("authCode").toString(); log.info("提取的值为---->"+authCode); vars.put("code",authCode);
- 采用fastjson包对json数据解析提取的第二种方式:
附上代码(代码意思与上述一样),如下所示:import com.alibaba.fastjson.*; String response = prev.getResponseDataAsString(); // 将获取的响应数据转换成Json对象 JSONObject jsonObject = JSON.parseObject(response); // 通过JSON路径格式提取json响应数据中参数的值(参数,json路径格式) String authCode = JSONPath.eval(jsonObject,"$.bus_data[0].authCode"); log.info("提取的值为---->"+authCode); vars.put("code",authCode);
结尾
如果你觉得文章对你有帮助,请动起你们的小手手点下赞(大拇指)哈(一键三连更好),Thanks♪(・ω・)ノ。
以上是关于Jmeter之beanshell多种提取嵌套Json数据的主要内容,如果未能解决你的问题,请参考以下文章
Jmeter-BeanShell PostProcessor提取请求及响应结果并保存到本地文件