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

步骤:

 

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

  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 } 

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

 

版权声明:本文为xiaochou1024原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaochou1024/p/9441024.html