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;
    }

  • 相关阅读:
    How To Build CyanogenMod Android for smartphone
    CentOS安装Code::Blocks
    How to Dual boot Multiple ROMs on Your Android SmartPhone (Upto Five Roms)?
    Audacious——Linux音乐播放器
    How to Dual Boot Multiple ROMs on Your Android Phone
    Everything You Need to Know About Rooting Your Android Phone
    How to Flash a ROM to Your Android Phone
    什么是NANDroid,如何加载NANDroid备份?
    Have you considered compiled a batman-adv.ko for android?
    BATMAN—Better Approach To Mobile Adhoc Networking (B.A.T.M.A.N.)
  • 原文地址:https://www.cnblogs.com/xiehong/p/11475105.html
Copyright © 2011-2022 走看看