Jmeter_Beanshell_使用Java处理JSON块
来源:互联网 发布:编辑数据透视图编辑区 编辑:程序博客网 时间:2024/06/08 02:49
版权声明:本文为博主原创文章,未经博主允许不得转载。
【环境】
①Jmeter版本:3.2,JDK:1.8
②前置条件:将json.jar包置于..\apache-jmeter-3.2\lib\下,并将该jar包添加到测试计划的Library中;否则会报:Typed variable declaration : Class: JSONObject not found in namespace的错误;
③处理器:Beanshell处理器,import org.json.*;(一般习惯使用到什么import什么,如:import org.json.JSONObject、import org.json.JSONAarry;)
【思路】
①获取请求的返回值,即Json响应;
String response_data = prev.getResponseDataAsString(); //注意此处获取到的是String类型;
②利用上一步获取的字符串形式的JSON,结合Java处理Json的方法,将需要的键值提取出来;
需要利用JSONObject或者JSONArray构造JSON对象。
JSONObject JsonData = new JSONObject(StrData);
③替换某些需要变更的字段值,再将新的JSON处理为Jmeter的参数,用于下一个请求的参数化值;
JsonData.put("status", "CLOSED");
String NewData = JsonData.toString();
vars.put("NewStrData",NewData);
【示例1-----JSONObject对象】
①获取到JSON对象,需要提取其中的data对象,并更换“issueHandleType”字段的值为“CLOSE”,再构造成参数字符串;
A请求后添加BeanShell后置处理器,代码如下:
import org.json.JSONObject;String response_data = prev.getResponseDataAsString();//获取请求返回值。注意此处只能获取到String类型;log.info(response_data);JSONObject data_obj = new JSONObject(response_data); //将String类型的返回值构造成JSONObject对象,才可使用Java对象的方法对其进行操作;String StrData = data_obj.get("data").toString(); //获取作为下一个请求post的参数值data;log.info(StrData); //Log中显示的字段顺序会与“response_data”中的字段顺序有差异,JSON串的正确与否无关字段顺序;JSONObject JsonData = new JSONObject(StrData); //将获取到的“data”字符串构造成JSON对象;JsonData.put("issueHandleType", "CLOSE"); //更新issueHandleType的json值;JsonData.put("solution", "2017_解决方案_性能测试");JsonData.put("status", "CLOSED");JsonData.put("handleType", "CLOSE");JsonData.put("complaintTypeSecondCode", "URGE"); JsonData.put("complaintTypeSecondName", "催件"); JsonData.put("lastUpdateTime", "${timestamp}");JsonData.put("lastUpdator", "${UserName}");JsonData.put("lastUpdatorName", "${UserName}");String NewData = JsonData.toString(); //将JSON对象保存为String类型,Jmeter中的请求的参数均以字符串的形式传递; vars.put("NewStrData",NewData);log.info(NewData);
请求的响应结果如下:
【示例2-----JSONArray对象】
- Jmeter_Beanshell_使用Java处理JSON块
- Java异常处理回顾:使用finally块
- Java 使用 json-lib 处理 JSON
- java 使用 fastjson 处理 json
- java中json处理的使用
- java中json处理的使用
- java处理json使用的jar包
- java中json处理的使用
- 使用Jackson在Java中处理JSON
- java中json处理的使用
- 使用Jackson在Java中处理JSON
- 使用Jackson在Java中处理JSON
- java中json处理的使用
- 使用json.org和json-lib来处理json字符串和java对象的转化
- 使用 QJson 处理 JSON
- 处理JSON:使用HttpMessageConverter
- 使用HttpMessageConverter处理JSON
- 使用 QJson 处理 JSON
- 虚拟机centos6.4网络连接设置--桥接设置
- River Hopscotch(二分法)
- 二分查找法(折半查找法)的实现
- linux c开发: 处理命令行参数
- 有序数组中和为定值的数字对与和为定值的连续正整数序列
- Jmeter_Beanshell_使用Java处理JSON块
- PCL:从PCD中读取点云
- 小结- 一web
- 设计模式——装饰器模式及在jdk中的应用
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
- RxVolley源码学习
- Javacollection
- 两个有序链表合并
- multi-university 第八场 经验总结