赞
踩
BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
BeanShell是一种松散类型的脚本语言(这点和JS类似);
BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
官网:http://www.BeanShell.org/
//Beanshell vars.putObject() vars.getObject()的使用
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
//putObject()可以在vars对象中放置Object类型对象
vars.putObject("list",list);
//===========================
//获取Object list对象
Object Value = vars.getObject("list");
//log.info只能输出String类型变量
log.info(Value.toString());
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
//SampleResult需要import对象
import org.apache.jmeter.samplers.SampleResult;
SampleResult result = ctx.getPreviousResult();
//getRequestHeaders()方法返回String字符串
String RequestHeaders = result.getRequestHeaders();
//getResponseHeaders() 返回响应headers
String ResponseHeaders = result.getResponseHeaders()
//getResponseCode() 返回响应状态码字符串
String responseCode = result.getResponseCode();
//ResponseMessage 响应信息,其类型为String。
//getURL() 返回请求URL对象
URL url = result.getURL();
log.info(RequestHeaders);
log.info(RequestHeaders);
// 设置sampler为测试通过
Failure = true;
// 设置sampler为测试失败
Failure = false;
FailureMessage = "测试失败";
String samplerData = new String(ResponseData);
log.debug("xxx");
log.info("xxx");
log.warn("xxx");
log.error("xxx");
vars中的变量仅对当前线程组内可见, 跨线程组则需要使用属性。
读取变量使用 vars.put(var, value)函数, 例如:
vars.put("new_value", value) ;
注意:上面的“new_value”必须是字符串类型, 传递其他类型,包括null,都会报错,如果想使用数字,数字等类型,一种方法是做类型转换
vars.put("MUST_BE_STRING", "" + 1);
vars.put("MUST_BE_STRING", (String)1);
vars.put("MUST_BE_STRING", [2, 3, 4].toString());
vars.put("MUST_BE_STRING", (String)[1,2]);
vars.put("MUST_BE_STRING", "" + [2, 3, 4]);
vars.put("MUST_BE_STRING", "" + true);
vars.put("MUST_BE_STRING", true.toString());
获取字符串变量:
vars.get()方法用于读取变量值:
如:vars.get(“goodId”);
如果传递的 variable_name 预先不存在,将返回null.
保存对象类型:
vars保存对象类型(包括List, Map, closure之类),使用如下方法:
vars.putObject("object_name", Object);
vars.putObject("NUMBER", 1);
vars.putObject("ARRAY", []);
vars.putObject("CLOSURE", { x, y -> x+y });
获取对象类型:
vars.getObject("OBJECT_NAME");
props
props 继承了Hashtable的累,所以拥有与vars类似的get和put 方法, 另外还有继承Hashtable的其他方法:
判断某属性是否存在, 返回布尔值
props.containsKey("PROPERTY_NAME")
判断某项值是否存在,返回布尔值:
props.contains("PROPERTY_VALUE")
删除某个值
props.remove("PROPERTY_NAME")
所有属性以字符串形式表示
props.toString()
//普通for循环的写法
for(int i = 0; i<list.size();i++){
log.info(list.get(i));
}
//增强for循环的写法
for(object : list){
log.info(object);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。