接口测试初期,先确认接口能否跑通,响应状态码为200,以及响应信息是json格式。
Jmeter4.0之后新增了JSON Assertion,可以验证响应是不是json格式。
但需同时验证响应状态码是否为200以及响应信息是否为json格式,可使用Jmeter工具添加beanshell断言。
-
下载json.jar,在测试计划中导入jar包
-
beanshell断言代码如下,可直接复制粘贴:
import org.json.*;//引入jar包
String result = prev.getResponseDataAsString();//获取响应信息
code=prev.getResponseCode();//获取响应状态码
log.info(code);//打印状态码
if(!code.equals("200")){
log.info("********状态码炸了********");
Failure = true;//断言失败
}
Object json = new JSONTokener(result).nextValue();//会给出一个对象,然后可以动态的转换为适当的类型
if(json instanceof JSONObject){
//判断其左边对象是否为其右边类的实例,返回boolean类型的数据
log.info("***是一个jsonObject***");
Failure = false;//断言成功
}else if (json instanceof JSONArray){
log.info("***是一个jsonArray***");
Failure = false;//断言成功
}else{
log.error("************不是一个json*************");
Failure = true;//断言失败
}
踩坑:最开始只想到了JSONObject,于是一片报红,后来发现有的响应是JSONArray,添加了对JSON数组的判断
网友评论