【Jmeter测试】BeanShell介绍和使用

BeanShell是什么?

  • BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
  • BeanShell是一种松散类型的脚本语言;
  • BeanShell是用Java写成的,一个小型的、免费的、可以下载、嵌入式的Java源代码解释器,具有对象脚本的特性;
  • BeanShell可以执行标准Java语句和表达式,以及另外自身的一些脚本命令和语法。

Jmeter中有哪些BeanShell组件

  • 定时器:BeanShell Timer
  • 前置处理器:BeanShell PreProcessor
  • 采样器:BeanShell Sampler
  • 后置处理器:BeanShell PostProcessor
  • 断言:BeanShell Assert(使用方法连接
  • 监听器:BeanShell Listener

BeanShell常用内置变量

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

  • log:写入信息到jmeter.log,使用方法:log.info(“message”),也可以在jmeter gui上看到打印的信息,如下:
    【Jmeter测试】BeanShell介绍和使用

  • ctx:该变量引用了当前线程的上下文,参见org.apache.jmeter.threads.JMeterContext

  • vars:操作jmeter变量,这个变量实际上引用了Jmeter线程中的局部变量容器(本质是map),测试用例可以通过它获取到变量的值;
    使用方法:
    (a) vars.get(String key),从jmeter中获得变量值
    (b) vars.put(String key, String value),数据存到jmeter变量中

  • props:该变量引用jmeter的配置信息,可以获取jmeter的属性,用法如下:
    (a) props.get(String key)获取jmeter.properties中的属性值
    (b) props.put(String key, String value)设置jmeter.properties中的属性值

  • prev(对应SampleResult):获取前面Sampler返回的信息,常用方法:
    (a) getResponseDataAsString(),获取响应信息
    (b) getResponseCode(),获取响应Code