• jmeter中使用beanshell断言


    之前讲了jmeter中beanshell脚本的使用,其实还可以借助beanshell来进行断言,这种断言方式相对响应断言、json断言来说更为灵活,可以自己构造想要断言的内容

    先来看一下接口的场景:

    接口A是一个新增数据接口,新增成功后,列表中的数据会多出1条,但是这个接口返回内容比较少,只有一个msg信息和状态码。

    所以为了更好的断言,我打算每次新增前后都调一下查询接口,获取新增前后,列表中的数据总数,如果前后相差1,则认为新增成功;如果前后相等,则认为接口请求失败

    开始尝试了json断言,如下

    但是实际运行后,结果如下

    所以后来尝试使用 beanshell 断言

    import org.json.*;
    
    String responseData = prev.getResponseDataAsString(); //获取请求的返回结果
    
    JSONObject response = new JSONObject(responseData);
    
    //log.info(response.getJSONObject("data").toString());
    //log.info(response.getJSONObject("data").get("total").toString());
    
    data = response.get("data").get("total")-1; // 新增成功后的数据总量减去1
    //log.info(data.toString());
    
    
    if (data.equals(${total1}))  //判断新增一条数据后再减去1的值与新增前是否一致
        {
        Failure=false ;  // 如果相等,则断言成功
        FailureMessage = "断言成功";
    //    log.info(data.toString());
        } 
    else {
        
        Failure=true;  // 如果不相等,则断言失败
    
        FailureMessage = "断言失败";
    //    log.info(data.toString());
        }

     data.equals(${total1}) 是判断data的值与total是否相等;

    如果相等,则这个接口是成功的,我们期望这个断言标记为成功

    beanshell使用Failure来标记失败,所以这里我们写 Failure=false ,表示不返回失败;

    如果不想等,则接口调用失败,我们期望这个断言标记为失败

    所以这里我们写 Failure=true ,返回失败;

    FailureMessage是自定义的断言信息,当断言失败时,可以打印出结果

    这样就断言就写好了,可以参考上述方式,从响应内容中提取想要的字段信息,来和预期结果进行比对。

  • 相关阅读:
    mongo 索引
    nginx gzip配置
    vim 命令
    Mongo小结
    阿里云ECS服务器连接MongoDB
    python 解析Excel
    Django之数据库--ORM
    sql语句
    关于Django的序列化问题。serializers
    MongoEngine模块
  • 原文地址:https://www.cnblogs.com/hanmk/p/15190447.html
Copyright © 2020-2023  润新知