metersphere复杂断言脚本——beanshell断言脚本

这篇博客介绍了如何在Metersphere平台上使用Beanshell脚本进行断言,确保HTTP响应中的`typeName`与`id`对应且值不变。作者提供了一个详细的脚本示例,遍历JSON数组并检查每个元素的`typeName`和`id`是否匹配预设的值,如'使用意见'(5555)、'设备信息'(4444)等。如果匹配,则设置断言失败为false,否则为true。
摘要由CSDN通过智能技术生成

 一个请求返回结果如下,断言要求typeName与id对应且值不改变。需要用到脚本断言

在这里我用的是metersphere平台首选的beanshell语言来编写的断言脚本

import org.json.*;
//获取响应内容
String response_data = prev.getResponseDataAsString();
//创建一个jsonObject类型对象,将响应数据放进去
JSONObject data_obj=new JSONObject(response_data);
//log.info("data_obj===================================="+data_obj);
//将jsonobject类型的数据转化为jsonarray(数组)
JSONArray data_array=data_obj.getJSONArray("data");
//log.info("data_array====================="+data_array);
for(int i=0;i<data_array.length();i++){
    //获取消息类型的id
    int id=data_array.getJSONObject(i).getInt("id");
    //获取消息类型的名称
    String typeName=((JSONObject)data_array.get(i)).get("typeName");
    //log.info("typeName=============="+typeName);
    //log.info("id=============="+id);
    if(typeName.equals("使用意见")||id==5555){
        AssertionResult.setFailure(false);
    }else if(typeName.equals("设备信息")||id==4444){
        AssertionResult.setFailure(false);
    }else if(typeName.equals("客服中心")||id==3333){
        AssertionResult.setFailure(false);
    }else if(typeName.equals("即时消息")||id==2222){
        AssertionResult.setFailure(false);
    }else if(typeName.equals("故障详情")||id==1111){
        AssertionResult.setFailure(false);
    }else{
        AssertionResult.setFailure(true);
        break;
    }
}

执行结果如下:

         metersphere脚本断言,与Apache JMeter的JSR223断言一样,可以参考jmeter的文档,附上连接:Apache JMeter - User's Manual: Component Reference

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值