• 二十、JMeter实战-Bean shell断言


    一、JMeter Bean shell断言

    什么是beanshell?

    1. Beanshell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的语法;
    2. Beanshell是Java写成的,是一个小型的Java源代码解释器,具有对象脚本的语言特性;
    3. Beanshell执行标准的Java语句和表达式;
      为什么要用beanshell?
      在做接口测试时,对响应数据的校验是非常重要的部分;在使用Jmeter进行接口测试时,比如我们有常用的响应断言,json断言;使用BeanShell断言可以根据实际情况灵活实现所需的断言,当然了,这需要一些代码基础。

    Bean Shell常用内置变量
    JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
    log:
    写入信息到jmeber.log文件,使用方法:log.info(“return success!”);

    vars - (JMeterVariables):
    操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

    • (1)vars.get(String key):从jmeter中获得变量值
    • (2)vars.put(String key,String value):数据存到jmeter变量中
      更多方法可参考:
    https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html
    

    prev - (SampleResult):
    获取前面的sample返回的信息,常用方法:

    • (1)getResponseDataAsString():获取响应信息
    • (2)getResponseCode() :获取响应code

    更多方法可参考:

    https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
    

    实例:

    1. 首先需要下载org.json的jar包,然后在测试计划中导入该jar包,并在jmeter的lib目录下放入该jar包。

    2. 在测试计划中选择jar包

    编写Beanshell脚本,断言code值:

    import org.json.*;
    
    //获取上一个请求的返回
    String jsonString = prev.getResponseDataAsString();
    JSONObject responseJson = new JSONObject(jsonString);
    
    //判断返回值是否和预期一致
    if (responseJson.getInt("error_code") != 0) {
        //把断言失败置为真,即用例失败,并在结果树中显示FailureMessage
        Failure = true;
        FailureMessage = "error_code的返回值有误!";
    }
    

  • 相关阅读:
    JS播放视频代码
    kubernetes系列(小知识):kubectl命令自动补全
    docker(部署常见应用):docker部署mysql
    docker(部署常见应用):docker部署nginx
    docker(二):CentOS安装docker
    docker(一):docker是什么?
    kubernetes系列:(二)、kubernetes部署mysql(单节点)
    越早明白越好的人生道理(转载)
    JetBrains系列IDE快捷键大全(转载)
    spring-boot系列:(一)整合dubbo
  • 原文地址:https://www.cnblogs.com/wwho/p/14230607.html
Copyright © 2020-2023  润新知