BeanShell相当于在JMeter中植入一段java代码。
在JMeter中有下面这些BeanShell
- 定时器
BeanShell Timer
- 前置处理器
BeanShell PreProcessor
- 采样器
BeanShell Sampler
- 后置处理器
BeanShell PostProcessor
- 断言
BeanShell Assert
- 监听器
BeanShell Listener
BeanShell 与 JMeter 之间通过内置变量vars
进行交互,而vars和java使用的HashMap相同,常使用vars.put(key,value)
添加一组变量的键值对。
案例
前置处理器使用案例
线程组设置为5,随便设就行
设置变量的模板
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
//格式化
DateTimeFormatter fmDate = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss SSS");
//当天
LocalDateTime today = LocalDateTime.now();
String time=today.format(fmDate);
log.info(time);
vars.put("time",time);// 设置一个变量
在这段代码中有用到日志,日志的输出是JMeter右上方的黄色感叹号
如下将上面一串java代码放入script中,这段代码作用就是将当前时间 存入变量中
如下会发现这段java代码生效了,当前时间在变化着
同理,BeanShell的其它模块和前置处理器一样,总之
BeanShell的作用就是植入一段java代码,有时候jmeter没有做的那么好,就需要写一点程序。
换个角度思考,程序的 前置、后置、断言、采样、监听、定时等动作都有BeanShell在JMeter中相应的实现,只需要找一下就行了