Jmeter踩坑:beanshell断言判断响应是否为json格式

接口测试初期,先确认接口能否跑通,响应状态码为200,以及响应信息是json格式。
Jmeter4.0之后新增了JSON Assertion,可以验证响应是不是json格式。
但需同时验证响应状态码是否为200以及响应信息是否为json格式,可使用Jmeter工具添加beanshell断言。

  1. 下载json.jar,在测试计划中导入jar包

  2. 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数组的判断

你可能感兴趣的:(Jmeter踩坑:beanshell断言判断响应是否为json格式)