参考:Jmeter BeanShell 内置变量vars、props、prev的使用详解_java_脚本之家
1.介绍
在使用Jmeter过程中,或多或少都会接触些BeanShell,它会使工具的使用,变得更灵活。
Jmeter中关于BeanShell的有:
1.BeanShell Sampler 取样器:完成Beanshell请求组件中定义的脚本功能;
2.BeanShell PostProcessor 后置处理器:可通过编程方式获取对应请求的响应结果;
3.BeanShell PreProcessor 前置处理器:可通过编程方式在发起请求以前做预处理,比如编码或者加密;
4.Beanshell 断言:可通过编程方式实现复杂的断言逻辑;
5.Beanshell 计时器:编码实现条件定时功能;
6.BeanShell Listener 监听器:监听Beanshell运行结果。
目前我使用较多的是前三种元件。使用过程中,就会使用一些内置变量,所以这也是今天的主要内容。
2.vars
vars 在 JMeter 内部,映射 org.apache.jmeter.threads 的 JMeterVariables 类,官方文档:JMeterVariables (Apache JMeter dist API)
注意点:
- vars 提供了对当前线程变量的读写能力
- 所有的 JMeter 变量都是 java字符串
- 把数据存放到一个 JMeter 变量中,需要先将它转换成字符串
2.1 getThreadName
方法声明
public String getThreadName()
功能
获取当前运行线程名
String threadname = vars.getThreadName();
log.info("当前ThreadName是"+threadname)
2.2 getIteration
方法声明
public int getIteration()
功能
获取线程当前的迭代号
int iteration_num = vars.getIteration();
String iteration_num_string = String.valueOf(iteration_num);
log.info("iteration_num>>>>"+iteration_num_string);
2.3 put/get-重点
2.3.1-put
方法声明
public void put(String key, String value)Parameters:
key - the variable name
value - the variable value功能
创建或更新字符串变量创建变量
2.3.2-get
方法声明
public String get(String key)功能
获取变量的值并将其转换为字符串,若变量存在则将值转换为字符串,否则返回 null