概念
◼ BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
◼ BeanShell是一种松散类型的脚本语言(这点和JS类似);
◼ BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具
有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
◼ BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
常用的beanshell组件
beanshell取样器
beanshell前置处理器
beanshell后置处理器
beanshell断言
beanshell 内置变量
log:写日志到控制台和jmeter.log,如log.info(“xxxxx”);
vars:操作jmeter变量
vars.get(“skuId”);从jmeter中获取
s
k
u
I
d
变量的值
v
a
r
s
.
p
u
t
(
“
n
a
m
e
”
,
”
t
e
s
t
”
)
;
将”
t
e
s
t
”保存到
{skuId}变量的值 vars.put(“name”,”test”);将”test”保存到
skuId变量的值vars.put(“name”,”test”);将”test”保存到{name}变量中
prev:获取前面sampler返回的信息
getResponseDataAsString():获取响应信息
getResponseCode():获取响应code
beanshell 断言
Failure:是否失败,boolean类型
FailureMessage:失败日志,在断言失败时显示
int iStock = Integer.parseInt(vars.get(“p_stock”));
if (iStock > 1500){
Failure = true;
FailureMessage = “库存数量超过了1500”;
// ResponseData是服务器返回的byte[]类型的数据
// 如果想打印,必须转换为String类型的,用new String(ResponseData)
//打印当前请求的url, SamplerData是String类型的数据
log.info(SamplerData);
}
beanshell数据写到文件
String line = vars.get(“userName")+“,”+vars.get(“token");
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(“C:\output.txt”,true));
writer.write(line);
writer.newLine();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}