点击查看
持续@2018
欢迎技术交流@2018

BeanShell PostProcessor 提取json

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

      

 

 1 import org.json.*;  
 2  
 3 String response_data = prev.getResponseDataAsString(); //url返回的数据
 4  
 5 JSONObject data_obj = new JSONObject(response_data); 
 6  
 7 String diaryList_str = data_obj.get("data").get("list").toString(); 
 8  
 9 JSONArray diaryList_array = new JSONArray(diaryList_str); 
10  
11  
12 String resultName ="";
13  
14 for(int i=0;i<diaryList_array.length();i++){ 
15  
16     JSONObject diaryList_obj = new JSONObject(diaryList_array.get(i).toString()); 
17     
18     String recordItems = diaryList_obj.get("name").toString();
19  
20     resultName ="resultName"+i;
21  
22     vars.put(resultName,recordItems);  
23  
24 } 
25  
org.json

 

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

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

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

 

 1 import com.alibaba.fastjson.JSON;
 2 import com.alibaba.fastjson.JSONArray; 
 3 import com.alibaba.fastjson.JSONObject;
 4  
 5 String response_data  = prev.getResponseDataAsString(); // //获取url返回值
 6 JSONObject data_obj  = JSON.parseObject(response_data); 
 7 String json=data_obj.get("data").toString();
 8 JSONObject jso=JSON.parseObject(json);//json字符串转换成jsonobject对象
 9 JSONArray jsarr=jso.getJSONArray("list");//jsonobject对象取得数组
10  String str2=""; 
11  
12 for(int i=0;i<jsarr.size();i++){ 
13         JSONObject ao=jsarr.getJSONObject(i);//jsonarray对象通过getjsonobjext(index)方法取得数组里面的jsonobject对象
14         
15     String vString=ao.getString("name");//jsonobject对象通过key直接取得String的值
16     if (vString == null){
17       vString=ao.getString("username");
18     }
19     
20     str2 = "answer_"+i;
21     
22     vars.put(str2,vString);
23 } 
com.alibaba.fastjson

 

posted @ 2018-08-08 12:53  小姐姐1024  阅读(393)  评论(0编辑  收藏  举报