JMeter性能测试之处理JSON数据

在测试过程中遇到这样的一个JSON数据,在这里插入代码片

"[{\"model\": \"mysite.event\", \"pk\": 1, \"fields\": "
				+ "{\"name\": \"节目一\", \"limit\": 23, \"status\": true, \"address\": \"北京\", \"start_time\": \"2019-10-10T10:10:10\", \"end_time\": \"2020-11-07T17:24:04.767\"}}, "
				+ "{\"model\": \"mysite.event\", \"pk\": 2, \"fields\": "
				+ "{\"name\": \"节目二\", \"limit\": 23, \"status\": false, \"address\": \"上海\", \"start_time\": \"2019-10-10T10:10:10\", \"end_time\": \"2020-11-07T17:29:20.199\"}},"
				+ " {\"model\": \"mysite.event\", \"pk\": 3, \"fields\":"
				+ " {\"name\": \"  节目三 \", \"limit\": 1, \"status\": true, \"address\": \"深圳\", \"start_time\": \"2020-10-10T10:10:00\", \"end_time\": \"2020-11-07T18:36:03.289\"}}]";

本想在Beanshell中直接写代码处理,但是总是报错,处理不了,无奈只有直接在eclipse中编写代码,利用fastjson解析JSON数据:

package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.net.URLDecoder;
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;

public class GetJsonData {
	public static String[] getInfo(String httpResult) throws Exception {
		httpResult=URLDecoder.decode(httpResult ,"UTF-8");
		List<String> list = Arrays.asList(httpResult); //将String转换成List
		JSONArray getJsonArray = JSONArray.fromObject(list); //将list转换为JSONArray对象
		int j=getJsonArray.getJSONArray(0).size();
		String[] arr = new String[j];
		for(int i=0;i<j;i++) {
			JSONObject getJsonObj =  (JSONObject) getJsonArray.getJSONArray(0).get(i);
			JSONObject cc=  (JSONObject) getJsonObj .get("fields");
	        System.out.println(cc.get("address"));
	        arr[i]=cc.get("address").toString();  
	    }
		System.out.println(arr);
		return arr;
	}
}

然后把这个打成jar包,如下图所示:
在这里插入图片描述
JMeter直接引用该jar包,如下图所示:
在这里插入图片描述
也可以把jar包直接放在lib/ext文件下,然后重启JMeter。
在后置处理器中使用该jar的函数,从而获取JSON数据,如下图所示:

import test.GetJsonData;

String jsonData = prev.getResponseDataAsString();
GetJsonData getJsonObj= new GetJsonData();
String [] jsonArray = getJsonObj.getInfo(jsonData );
int i=0;
for (String x : s) {   
	     String key="name"+ i;
	     vars.put(key,x); 
	     i++;
	     }  

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值