Jmeter获取接口返回数组的长度

时间:2021-01-31 05:11:54

添加BeanShell PostProcessor来获取,具体代码如下:

 import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.Predicate;
import net.minidev.json.JSONArray;
public class Test {
public static String readjson(String json, String jsonPath) {
try
{
Object value = JsonPath.read(json, jsonPath, new Predicate[0]);
if (value instanceof Integer)
{
return value.toString();
}else if (value instanceof String)
{
return value.toString();
}else if (value instanceof Boolean)
{
return value.toString();
}else if (value instanceof JSONArray)
{
JSONArray arr = (JSONArray)value;
if(!arr.isEmpty()){return arr.toJSONString();}
return "";
}else if (value instanceof LinkedHashMap)
{
return value.toString();
}else if (value instanceof float)
{
return value.toString();
}else{
return value.toString();
}
}
catch(Exception e){
return "pathnotfound";
}
}
}
//------------------------------------------------------------------------------------------------------------------
public static void fun(){
String response_data=prev.getResponseDataAsString();//prev为JMeter预定义变量
String JsonPath="$.data.list.length()";
String result=Test.readjson(response_data,JsonPath);
int resultToNum=Integer.parseInt(result);
log.info("------------------------返回数组的长度为:"+result+"----------------------");
vars.put("ResultTotal",result);
}
fun();