jmeter beanshell判断响应的json值是否正确;

jmeter beanshell判断响应的json值是否正确;

 

 

 题目,如上图;

采用beanshell postprocessor结合fastjson库的方法;

先配置环境,我用的是jmeter 5.11,fastjson用到的1.2.68的版本;需要将fastjson.jar包放到jmeter的安装路径的lib\ext库中,并且在jmeter的Test Plan中引用这个jar包;

jmeter beanshell判断响应的json值是否正确;

 

 

 BeanShell Sampler构造json响应结果;代码如下;

return "{\"Status Code\":200,\"ret\":{\"id\":\"id\",\"imageList\":[{\"originUrl\":\"图片链接1\",\"originWidth\":200,\"originHeight\":300},{\"originUrl\":\"图片链接2\",\"originWidth\":300,\"originHeight\":300}]}}"

BeanShell PostProcess代码如下;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; 
import com.alibaba.fastjson.JSONObject;
String rs = prev.getResponseDataAsString();//获取响应结果

JSONObject aa = JSON.parseObject(rs);//整个响应结果作为JSON对象;

JSONObject ret=aa.getJSONObject("ret");//获取某一部分对象。即,json串中{}的内容;
JSONArray imageList=ret.getJSONArray("imageList");//获取列表。即json串中的[]的内容;
log.info("结果:"+imageList); //不能写成log.info(imageList);这样会报错;需要加字符串;

boolean result;
for(int i=0;i<imageList.size();i++){	
	String x=imageList.getJSONObject(i).getString("originHeight");
	String y=imageList.getJSONObject(i).getString("originWidth");	
	log.info(x+" "+y);//查看结果;
	if(!(x.equals("300")) || !(y.equals("200"))){//注意整数需要使用"括起来,作为字符串;
		log.info("第"+(i+1)+"项服务器返回结果不正确");
		result=true;		
	}
}
if(!result){
	log.info("服务器返回结果正确");
}

 jmeter beanshell判断响应的json值是否正确;

 

 

 jmeter beanshell判断响应的json值是否正确;

 

 

com.alibaba的fastjson简介

fastjson是一个Java语言编写的高性能功能完善的JSON库。

常用api;

1.String JSON.toJSONString(Object object) //将对象序列化成json字符串;//我认为String代表类型;可以使用String类型的变量去接收这个值;

2.JSONObject JSON.parseObject(String text) //将json字符串反序列化成JSON对象;

3.JSONArray JSONObject.getJSONArray(String key) //根据key得到json中的json数组;

4.JSONObject JSONArray.getJSONObject(int index) //根据下标拿到json数组的json对象;

5.String JSONObject.getString(String key) //根据key拿到json的字符串值;

6.int JSONObject.getIntValue(String key) //根据key拿到json的int值;

7.boolean JSONObject.getBooleanValue(String key) //根据key拿到json的boolean值;

参考:https://www.cnblogs.com/qiaoyeye/p/7730288.html

 

上一篇:招新系统(jsp+servlet,实现简略前端网页注册登录+后台增删改查,分学生和管理员,Java语言,mysql数据库连接,tomcat服务器)


下一篇:真能一快遮"百丑"?为什么要弃坑FastJson