jmeter BeanShell PostProcessor 提取json

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoshenhuo/article/details/81503837

BeanShell PostProcessor 可对url请求参数、请求返回的结果进行处理赋值等操作;

步骤:

BeanShell PostProcessor 对url 返回的json进行提取:

  json的数据格式为:{"data":{"total":5,"list":[{"enabled":true,"lastLoginTime":00,"name":"超级管理员","id":1,"state":"Normal","username":"admin"},{"enabled":true,"lastLoginTime":1,"name":"普通管理员","id":2,"state":"Normal","username":"adminment"},}

  1、采用import org.json.* 进行处理:

    使用 org.json必须引入的包:下载

    下载的包放到jmeter目录下的lib目录中,记得重启jmeter

      

import org.json.*;  

String response_data = prev.getResponseDataAsString(); //url返回的数据

JSONObject data_obj = new JSONObject(response_data); 

String diaryList_str = data_obj.get("data").get("list").toString(); 

JSONArray diaryList_array = new JSONArray(diaryList_str); 


String resultName ="";

for(int i=0;i<diaryList_array.length();i++){ 

    JSONObject diaryList_obj = new JSONObject(diaryList_array.get(i).toString()); 
    
    String recordItems = diaryList_obj.get("name").toString();

    resultName ="resultName"+i;

    vars.put(resultName,recordItems);  

} 

 2、采用 import com.alibaba.fastjson.*  进行处理:

    使用com.alibaba.fastjson必须引入的包:下载

    下载的包放到jmeter目录下的lib目录中,记得重启jmeter

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; 
import com.alibaba.fastjson.JSONObject;

String response_data  = prev.getResponseDataAsString(); // //获取url返回值
JSONObject data_obj  = JSON.parseObject(response_data); 
String json=data_obj.get("data").toString();
JSONObject jso=JSON.parseObject(json);//json字符串转换成jsonobject对象
JSONArray jsarr=jso.getJSONArray("list");//jsonobject对象取得数组
 String str2=""; 

for(int i=0;i<jsarr.size();i++){ 
        JSONObject ao=jsarr.getJSONObject(i);//jsonarray对象通过getjsonobjext(index)方法取得数组里面的jsonobject对象
        
    String vString=ao.getString("name");//jsonobject对象通过key直接取得String的值
    if (vString == null){
      vString=ao.getString("username");
    }
    
    str2 = "answer_"+i;
    
    vars.put(str2,vString);
} 

猜你喜欢

转载自blog.csdn.net/xiaoshenhuo/article/details/81503837