zoukankan      html  css  js  c++  java
  • JMeter(7) 优化判断返回类型和返回值

    之前判断接口类型和返回值用beanshell,可见JMeter(5)-JMeter之BeanShell使用

    优化点

    1. 接口测试里面对返回字段的类型验证值验证为基本需求,将方法导成jar文件,导入之后方便每个断言可以调用。
    2. 补充对null类型、Array类型的判断

    步骤

    1. 将判断方法打包成jar文件
      java项目打包成jar
      我的jar下载
    2. 导入jmeter项目中


       
       
    3. 判断接口返回字段值正确性(EqualsJsonValue类)
      beanshell的调用代码如下
    import com.susie.action.equals.EqualsJsonValue;
    String standardData = "{'uid':123,'phone':1,'has_password':true,'location':{'province':true,'city':'123'},'cpma':1}";
    EqualsJsonValue equalsValue = new EqualsJsonValue();
    Failure = !equalsValue.respValueAssertion(standardData, prev.getResponseDataAsString()); //断言结果
    FailureMessage = equalsValue.getMessage(); //断言错误信息
    

    运行结果


     
     
    1. 判断接口返回字段类型正确性(EqualsJsonType类)
      beanshell的调用代码如下
    import com.susie.action.equals.EqualsJsonType;
    String standardData = "{'uid':123,'phone':1,'has_password':true,'location':{'province':true,'city':'u6c55u5934u5e02'},'cpma':null}";
    EqualsJsonType equalsJson = new EqualsJsonType();
    Failure = !equalsJson.respTypeAssertion(standardData, prev.getResponseDataAsString());
    FailureMessage = equalsJson.getMessage();
    
    1. 格式化每个接口的字段断言
      将每个需要检查的字段(期望响应)直接用csv记录,每次比较直接读取进行比对无需一个个断言,非常方便~


       
       

      通过CSV Data Set Config读取,在beanshell中比较,调用方式与前面类似,获取标准响应

    String standardDataShell = vars.get("standardData").toString();
    

    注意: 读取csv中的json的时要注意json的逗号&双引号
    在这里坑了许久,因为csv是以逗号区分不同列的数据,所以,要把json里面的逗号改称分号,双引号改称单引号;

    如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

    赞赏支持
     
    接口自动化Jmeter
    Gupao
    登录 后发表评论
     
     
    失语失芯不失梦
    2楼 · 2018.11.24 18:44

    不是很明白:joy: 如果我想判断返回数据里面字段A的值类型对不对该怎么写呢?比如说定义的是字段A应该返回int型的值,但实际上返回的是string类型的值,这种断言我怎么写呢

    @失语失芯不失梦
    在benshell里面写java脚本就可以验证。
    思路是提取返回数据里字段A,得到A的类型,跟期望的类型比较。类型一致则断言成功;类型不一致则断言失败。
    我这篇里面只是把比较的方法封装在jar包里面,方便每次都直接调用来判断而已。
    2018.12.04 14:43 回复
    封装后,每次只要输入一段期望值(json格式),脚本会从接口响应(json格式)里提取对应的字段,逐一判断
    2018.12.04 14:45 回复


    作者:susie酱
    链接:https://www.jianshu.com/p/78df350d78e5
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    联表查询更新
    SQLServer 中多行数据合并成一行数据(一个字段)
    换行和回车的区别
    SQL语句中使用回车换行符
    g2o使用总结
    求导总结
    ubuntu14.04 升级gcc
    如何入门SLAM
    imu和canmera标定
    使用velodyne16线激光雷达跑loam-velodyne------包括激光雷达和imu的标定
  • 原文地址:https://www.cnblogs.com/a00ium/p/10296120.html
Copyright © 2011-2022 走看看