beanshell 断言 jmeter脚本断言json 响应体

import org.json.JSONObject;
import org.json.JSONArray;
String response = prev.getResponseDataAsString();

try {
    // 将响应字符串转换为JSON对象
    JSONObject jsonResponse = new JSONObject(response);

    // 获取 code, message 和 skuList 字段
    int code = jsonResponse.getInt("code");
    String message = jsonResponse.getString("message");
    JSONArray skuList = jsonResponse.getJSONObject("data").getJSONArray("skuList");

    // 检查 code 是否为 1 和 message 是否为 "success"
    if (code != 1) {
        prev.setSuccessful(false);
        prev.setResponseMessage("Invalid code, expected 1 but got " + code);
    } else if (!"success".equals(message)) {
        prev.setSuccessful(false);
        prev.setResponseMessage("Invalid message, expected 'success' but got " + message);
    } else if (skuList == null || skuList.length() == 0) {
        // 检查 skuList 是否为空
        prev.setSuccessful(false);
        prev.setResponseMessage("skuList is empty or null");
    } else {
        // 如果没有失败,则断言通过
        prev.setSuccessful(true);
    }
} catch (Exception e) {
    // 捕获JSON解析异常
    prev.setSuccessful(false);
    prev.setResponseMessage("Error parsing the response: " + e.getMessage());
}

 2、响应demo:

{
"code": 1,
"data": {
"skuList": [
{
"quantity": 2,
"salePrice": 28.99,
"discountPrice": 28.99,
"skuId": "529874918398763056"
},
{
"quantity": 2,
"salePrice": 28.99,
"discountPrice": 28.99,
"skuId": "529874918398763050"
}
]
},
"message": "success"
}
posted @ 2024-11-29 10:29  不带R的墨菲特  阅读(2)  评论(0编辑  收藏  举报