zoukankan      html  css  js  c++  java
  • JMeter之BeanShell常用内置对象

     一、什么是Bean Shell

    • BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
    • BeanShell是一种松散类型的脚本语言(这点和JS类似);
    • BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
    • BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
    • 官网:http://www.BeanShell.org/

    二、Jmeter有哪些Bean Shell

    • 定时器:  BeanShell Timer
    • 前置处理器:BeanShell PreProcessor
    • 采样器:  BeanShell Sampler
    • 后置处理器:BeanShell PostProcessor
    • 断言:   BeanShell断言
    • 监听器:  BeanShell Listener

     

    三、Bean Shell常用内置变量

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

    (1)bsh.args对象获取数组参数

     

     

    (2)vars内置对象的使用

    A:示例定义一个用户自定义变量

    B:vars.get(String key)获取String变量 

       vars.put(String key,Value)放置一个Map到vars 

     

    (3)vars内置对象put和get Object对象

    如果需要获取或者放置非String类型数据 需要用putObject()和getObject()

     

     1 //Beanshell vars.putObject() vars.getObject()的使用
     2 List list = new ArrayList();
     3 
     4 list.add("aaa");
     5 list.add("bbb");
     6 //putObject()可以在vars对象中放置Object类型对象
     7 vars.putObject("list",list);
     8 //===========================
     9 //获取Object list对象
    10 Object Value = vars.getObject("list");
    11 //log.info只能输出String类型变量
    12 log.info(Value.toString());


     

     

    (4)Beanshell的常用内置对象-cxt

    cxt内置对象getPreviousResult()方法 调用请求/响应数据

    cxt内置对象来自于JMeterContext 查看Jmeter API发现有下列get方法可以获取请求/响应数据

     

     1 //SampleResult需要import对象
     2 import org.apache.jmeter.samplers.SampleResult;
     3 
     4 SampleResult result = ctx.getPreviousResult();
     5 //getRequestHeaders()方法返回String字符串
     6 String RequestHeaders = result.getRequestHeaders();
     7 //getResponseHeaders() 返回响应headers
     8 String ResponseHeaders = result.getResponseHeaders() 
     9 //getResponseCode() 返回响应状态码字符串
    10 String responseCode = result.getResponseCode();
    11 //getURL() 返回请求URL对象 
    12 URL url = result.getURL();
    13 log.info(RequestHeaders);
    14 log.info(RequestHeaders);

     

    (5)prev内置对象

    prev是Beanshell后置处理器的内置对象 相当于ctx.getPreviousResult();

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

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

    b) getResponseCode() :获取响应code

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

    (5)props内置对象

    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"); 

     

    http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_Sampler

    http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PreProcessor

  • 相关阅读:
    python学习笔记(六)---文件操作与异常处理机制
    python学习笔记(五)---函数与类
    python学习笔记(四)---用户输入与while循环
    python学习笔记(三)---字典
    python学习笔记(二)---for循环与操作列表
    python学习笔记(一)---字符串与列表
    HTML
    80386汇编
    8086汇编语言
    网络设备配置--2、通过交换机划分vlan
  • 原文地址:https://www.cnblogs.com/muchengnanfeng/p/9767633.html
Copyright © 2011-2022 走看看