15.jmeter 自定义断言及json.jar的使用

前置条件:

将json.jar包置于..\apache-jmeter-3.2\lib\下,并将该jar包添加到测试计划的Library中;否则会报:Typed variable declaration : Class: JSONObject not found in namespace的错误;

会使用到的方法:

  ①获取请求的返回值,即Json响应;

    String response_data =prev.getResponseDataAsString();  //注意此处获取到的是String类型;

  ②将请求的返回值转换成json

               JSONObject data_obj = JSONObject.parseObject(response_data);//转换成json对象

               JSONObject JsonArr   =   parseArray(response_data );   //转换成json数组对象

  ③获取Json里的数据

                JSONObject data = data_obj.getJSONObject("data"); //获取data

                int total =data.getIntValue("total"); //获取data里的total

               JSONArray rows = data_obj.getJSONObject("data").getJSONArray("rows");//获取data下的数组rows

       ④获取Json数组rows [ i ] 对象的第i个值

                 String number = rows.get(i).get("number").toString();//获取rows[i]下的number值

       ⑤获取rows[]数组的长度

                   int  len= rows.size();

        ⑥把字符串转成 JSONArray  对象

                   JSONArray json = JSONArray.fromObject(str ); // 把字符串转成 JSONArray  对象

主要引用的包:

                 import com.alibaba.fastjson.JSONArray;    //操纵数组

                  import com.alibaba.fastjson.JSONObject;  

  【下载地址】:https://www.mvnjar.com/com.alibaba/fastjson/1.2.49/detail.html

15.jmeter 自定义断言及json.jar的使用_第1张图片

1.添加beanshell断言,填写脚本


15.jmeter 自定义断言及json.jar的使用_第2张图片

//导入包

import java.util.Arrays;

import org.apache.jmeter.assertions;

import org.apache.jmeter.samplers.SampleResult;

import org.apache.jmeter.assertions.AssertionResult;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;


String permissions=bsh.args[0];

//log.info("交付物权限:"+permissions);  //用于调试值是否传入成功

String response_data = prev.getResponseDataAsString();//获取接口返回的response数据

//log.info("response_data:"+response_data);  //用于调试值是否传入成功

JSONObject data_obj = JSONObject.parseObject(response_data);//转换成json

//判断code是否等于0 如果等于0 再取里面的字段

int code = data_obj.getIntValue("code");

//log.info("code:"+code);  //用于调试值是否获取成功

if(code==0){

JSONObject data = data_obj.getJSONObject("data"); //获取data

//log.info("data:"+data);

int total =data.getIntValue("total"); //获取total

//log.info("total:"+ total);  //用于调试值是否获取成功

//这里的total 是之前的接口返回获取的

//log.info("total:"+ total +"交付物权限:"+permissions);  //用于调试值是否获取成功

if((total == 1  &&  permissions.equals("TRUE")) || (total == 0 &&  permissions.equals("0"))){

Failure = false; //设置成false 表示接口跑成功,在结果树中sample是绿色的

} else {

Failure = true;//直接判断失败,表示接口跑失败,在结果树中sample是红色的

//FailureMessage = "权限配置错误";

//prev.setStopThread(true);//如果断言失败,后面的接口不需要再跑,直接暂停

}

}

//log.info("断言结果:"+FailureMessage);  //用于调试值是否获取成功

你可能感兴趣的:(15.jmeter 自定义断言及json.jar的使用)