zoukankan      html  css  js  c++  java
  • jmeter(二十八)利用beanshell进行多重断言

    在接口测试中,我们对返回结果的正确性判断一般是基于响应报文的返回内容进行断言。但有些时候,按照正常的业务逻辑来说,一个请求返回的内容是多种不同的。

    比如:用户注册功能,注册成功是正常的返回message;该用户已注册,也是正常的业务逻辑。但响应报文的message和code/status往往是不一样的。

    这篇博客,介绍下如何利用jmeter的beanshell断言,来处理这种请求。。。

     

    一、响应断言

    以用户注册功能作为例子,从下面两种场景来进行接口测试:

    1、假设用户不存在,接口设计逻辑,注册成功返回的内容是这样:

    {"code":200,"msg":"success"},"status":200}

    响应断言应该如下配置:

    返回的结果是这样:

    2、假设用户已存在,那么在测试该功能时,使用响应断言,返回的内容如下:

    从业务逻辑来说,无论注册成功还是用户已存在,这都是正常的业务场景。

    但响应断言只能判断“是”或者“否”,如果需要验证业务正确而非技术正确,如何做呢?

    我们可以利用beanshell断言,来满足我们的需求。

    二、beanshell断言

    还是针对上述场景,无论注册成功,还是用户已存在,我们都判定接口返回正确,那么beanshell断言,可以如下配置:

    返回的结果是这样:

    附:beanshell断言代码demo:

    import com.alibaba.fastjson.JSONObject;
    import com.alibaba.fastjson.JSON;
    
    String result=SampleResult.getResponseDataAsString();
    
    JSONObject jsonObject=JSON.parseObject(result);
    int code=jsonObject.getIntValue("code");
    JSONObject data=jsonObject.getJSONObject("data");
    
    log.info("code:"+code);
    
    if(code==200||code>=20000000){
        SampleResult.setSuccessful(true);
    }

    内容仅供参考,请根据具体场景和接口设计逻辑,使用beanshell断言。。。

  • 相关阅读:
    大型网站架构之分布式消息队列【转】
    Jpa生成mysql注释,添加ODBC数据源导入数据到EA
    Spring boot框架项目,使用maven命令将配置文件打包到jar包外,项目运行读取jar外配置文件
    spring boot 整合 quartz 集群环境 实现 动态定时任务配置【原】
    关于博主
    [School Life] 骗你去努力
    [OI
    洛谷P4994【终于结束的起点】
    [OI系列]在考场千万不能犯的错误
    [OI
  • 原文地址:https://www.cnblogs.com/imyalost/p/12777912.html
Copyright © 2011-2022 走看看