随笔 - 116  文章 - 0  评论 - 17  阅读 - 12万

Jmeter - BeanShell断言

添加 - 断言 - BeanShell断言:

 

复制代码
// 1. 状态码断言  
//   字符串只能使用双引号,字符串相等要使用  " ".equals(" ")表达式
log.info("状态码:"  +  ResponseCode);
if (ResponseCode.equals("200")){
    Failure = false;   // 表示断言成功    
}
else{
    Failure = true;   // 表示断言失败
    FailureMessage = "相应状态码非200";   // 自定义的失败信息
}

// 2. 断言包含  
String response = prev.getResponseDataAsString();   //  获取响应数据
log.info("响应体:"  +  response);
if (response.contains("项目名称不能为空")){
    Failure = false;   // 表示断言成功    
}
else{
    Failure = true;   // 表示断言失败
    FailureMessage = "相应数据不包含:项目名称不能为空";   // 自定义的失败信息
}

// 3. 使用 JSON 响应断言
import org.json.*;   //  导入 org.json 包

String response = prev.getResponseDataAsString();   //  获取响应数据
JSONObject responseJson = new JSONObject(response);   //  转为 JSON 对象
String message = responseJson.getString("message");    //  获取 message 字段
log.info("响应 message 字段值:"  +  message);
if (message.contains("项目名称不能为空")){
    Failure = false;   // 表示断言成功    
}
else{
    Failure = true;   // 表示断言失败
    FailureMessage = "响应message字段非成功";   // 自定义的失败信息
}
vars.put("result", response);   //  提取参数
vars.put("result", responseJson.toString());  //  提取参数

// 4. 响应头解析
import java.util.HashMap;
import java.util.Map;

//将字符串用换行符 截取为abc数组
String [] headersList = ResponseHeaders.split("\n");
Map headersMap = new HashMap();  // 创建HashMap来重新组装headers
for (int i=1; i<headersList.length; i++){
    String [] itemsList = headersList[i].split(": ");   // 按照冒号分割
    headersMap.put(itemsList[0], itemsList[1]);    // 键值对放入HashMap
}
String contentType = headersMap.get("Content-Type");    //提取请求头
log.info("响应Content-Type:" + contentType )


/*
一、断言方式
    包含: message.contains("项目名称不能为空");
    等于:message.equals("项目名称不能为空");

二、JSON响应体字段提取
    下载 org.json.jar 放置 JMeter/lib目录下,下载地址:https://search.maven.org/search?q=g:org.json%20AND%20a:json&core=gav;
    JSON 其他语法:
        JSONObject对象除了getString()方法外,还支持:
        getBoolean(“字段名”):获取布尔类型字段值。
        getInt(“字段名”):获取整型字段值。
        getLong(“字段名”):获取长整型字段值。
        getDouble(“字段名”):获取双精型字段值。
        getJSONObject(“字段名”):获取嵌套Object类型字段值,JSONObject类型。
        getJSONArray(“字段名”):获取嵌套Array类型,JSONArray类型。

*/
复制代码

 

posted on   蜗牛也是妞  阅读(616)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示