zoukankan      html  css  js  c++  java
  • Jmeter之BeanShell断言使用

    1.Bean Shell常用内置变量

    JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

    • log用来记录日志文件,写入到jmeber.log文件,使用方法:log.info(“This is log info!”);

    • ctx(JmeterContext)通过它来访问context,使用方法可参考:org.apache.jmeter.threads.JMeterContext

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

        a) vars.get(String key):从jmeter中获得变量值

        b) vars.put(String key,String value):数据存到jmeter变量中

         c) vars.putObject("OBJ1",new Object());

        更多方法可参考:org.apache.jmeter.threads.JMeterVariables

    • props - (JMeterProperties - class Java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。 

        a) props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义 

        b) props.put("PROP1","1234"); 

    • prev - (SampleResult):获取前面的sample采样的结果,常用方法:

        a) getResponseDataAsString():获取响应信息

        b) getResponseCode() :获取响应code

        更多方法可参考:org.apache.jmeter.samplers.SampleResult

    • sampler - (Sampler):gives access to the current sampler 访问当前采样

    2.BeanShell 断言使用实例

      BeanShell断言可以使用beanshell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本。

          这里除了可以使用beanshell的内置变量外,主要通过Failure和FailureMessage来设置断言结果。
      

    Failure = false;-----表示断言成功,
     
    FailureMessage = "……"; ----自定义的成功信息
     
    Failure = true;-----表示断言失败,
     
    FailureMessage = "……";-----自定义的失败信息。

      实例:

    String responseData = prev.getResponseDataAsString(); //获取请求的返回结果
    String code = prev.getResponseCode(); //获取请求的返回code码
    String requestData = prev.getSamplerData(); //获取发出的请求数据
    if( !code.equals("200") ){ //如果请求的相应状态码不是200
        FailureMessage = "响应状态码不是:200,而是:" + code + ",请求失败!"; //自定义的失败信息
        log.info(FailureMessage); //在日志里打印失败的信息
        log.info("Request: " + requestData); //在日志里面打印失败的请求体
        Failure = true; //表示断言失败
    }
    else if(!responseData.contains(""errCode":0")){
        
        FailureMessage = "响应body中errCode不是:0,响应body为:" + responseData;
        log.info(FailureMessage);
        log.info("Request: " + requestData);
        Failure = true;
    }

  • 相关阅读:
    AJAX 基础知识
    jQuery知识点总结
    css基础应用总结
    javascript 总结
    找回密码-博客园
    centerOS 7 安装MySql
    java leetcode TreeNode类、ListNode类的实现
    iOS StatusBar状态栏文字颜色更改
    使用Jmeter压力测试工具测试
    安装node.js
  • 原文地址:https://www.cnblogs.com/xiehong/p/11475105.html
Copyright © 2011-2022 走看看