在使用jmeter的时候,往往会遇到一些问题,比如需要获取某个api的返回,或者需要做一些前置处理,jmeter中一共有以下几类BeanShell脚本处理器
- 定时器: BeanShell Timer
- 前置处理器:BeanShell PreProcessor
- 采样器: BeanShell Sampler
- 后置处理器:BeanShell PostProcessor
- 断言: BeanShell断言
- 监听器: BeanShell Listener
jmeter中提供了几种常用的内置变量,我们利用这些变量可以和jmeter进行交互
- ctx
获取一些上下文的信息
- vars
JMeterVariables
vars主要用于操作一些变量,可以读取变量的值,也可以设置一个变量,之后我们在jmeter中就可以使用 ${变量名称} 的方式访问这个变量,我截取了它的一些方法
示例代码如下
vars.get("VAR1");
vars.put("VAR2","value");
vars.remove("VAR3");
vars.putObject("OBJ1",new Object());
- props
JMeterProperties (class java.util.Properties)
示例代码如下
props.get("START.HMS");
props.put("PROP1","1234");
- prev
截取了一部分方法
示例代码
String body = prev.getResponseDataAsString();
log.info(body);
注意
vars和props都可以put一个变量出来,但是它们两个put出来的变量在使用的时候有些不同,vars设置的变量只能在本线程组内使用,而props设置的变量可以跨线程组使用,而且引用vars设置的变量的方法是 ${变量名称},而引用props设置的变量需要通过使用jmeter的内置函数 ${__P(PROP1,)
执行结果,可以看出,值都获取到了
执行结果,可以看出,只有props设置的变量获取到了,vars设置的变量没有获取到
可参考jmeter官方文档
BeanShell PreProcessor
BeanShell_PostProcessor