JMeter之BeanShell常用内置对象

本文详细介绍了BeanShell作为一种轻量级Java脚本语言在JMeter中的运用,包括定时器、采样器、断言等组件的使用,以及如何通过内置变量与JMeter进行交互,适用于性能测试和自动化测试的初学者和专业人士。
摘要由CSDN通过智能技术生成

 

 一、什么是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

转载于:https://www.cnblogs.com/muchengnanfeng/p/9767633.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值