Jmeter-BeanShell断言:返回结果数据与数据库数据进行对比

返回数据body:[]对比

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;

//接口返回数据
String response_str = prev.getResponseDataAsString();
log.info(">>>>接口返回数据:response_str" + response_str);
//获取数据库数据
Object dataCount = vars.getObject("result");//result为JDBCXXX文件中result variable name
// 获取数据库返回条数
int sqlCount = dataCount.size();
log.info(">>>>数据库返回条数sqlCount:" + sqlCount);
//将数据库Object转为Str
String dataCount_str = dataCount.toString();
log.info(">>>>获取数据库数据dataCount_str:" + dataCount_str);
//获取返回body信息
JSONObject body_obj = JSON.parseObject(response_str);
String body_str = body_obj.get("body").toString();

/*判断数据库数据*/
// 分割数据库返回数据进行对比
String[] count_arr = dataCount_str.split(",");
// 获取返回body集合
JSONArray body_list = JSON.parseArray(body_str);
//比较集合与数据库数据集大小
if (sqlCount != body_list.size()) {
    Failure = true;
    FailureMessage = "返回结果条数为:" + body_list.size() + ",应该返回条数为:" + sqlCount;
} else {
    //比对两者数据
    int count = count_arr.length;
    for (int i = 0; i < count; i++) {
        String dict_str = count_arr[i].split("=")[1].split("}")[0];
        log.info(">>>>dict_str:" + dict_str);
        log.info(response_str.contains(dict_str) + "");
        log.info(response_str);
        boolean flag = response_str.contains(dict_str);
        if (!flag) {
            Failure = true;
            FailureMessage = "信息不匹配~! 字段为:" + dict_str;
        }
    }
}

返回数据body:{}对比

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;

//接口返回数据
String response_str = prev.getResponseDataAsString();
log.info(">>>>接口返回数据:response_str" + response_str);
//获取数据库数据
Object dataCount = vars.getObject("result");//result为JDBCXXX文件中result variable name
// 获取数据库返回条数
int sqlCount = dataCount.size();
log.info(">>>>数据库返回条数sqlCount:" + sqlCount);
//将数据库Object转为Str
String dataCount_str = dataCount.toString();
log.info(">>>>获取数据库数据dataCount_str:" + dataCount_str);
//获取返回body信息
JSONObject body_obj = JSON.parseObject(response_str);
String body_str = body_obj.get("body").toString();

/*判断数据库数据*/
// 分割数据库返回数据进行对比
String[] count_arr = dataCount_str.split(",");
// 获取返回body集合
JSONObject body_list = JSON.parseObject(body_str);
//比较集合与数据库数据集大小
if (sqlCount != body_list.size()) {
    Failure = true;
    FailureMessage = "返回结果条数为:" + body_list.size() + ",应该返回条数为:" + sqlCount;
} else {
    //比对两者数据
    int count = count_arr.length;
    for (int i = 0; i < count; i++) {
        String dict_str = count_arr[i].split("=")[1].split("}")[0];
        log.info(">>>>dict_str:" + dict_str);
        log.info(response_str.contains(dict_str) + "");
        log.info(response_str);
        boolean flag = response_str.contains(dict_str);
        if (!flag) {
            Failure = true;
            FailureMessage = "信息不匹配~! 字段为:" + dict_str;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/rechin/p/9232741.html