JMeter 在它的 BeanShell 中内置了变量,用户可以通过这些变量与 JMeter 进行交互,其中主要的变量及其使用方法如下:
log:用来记录日志文件,写入到 jmeber.log 文件,使用方法:log.info(“This is log info!”);
ctx(JmeterContext)通过它来访问 context,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操作 jmeter 变量,提供读取/写入访问变量的方法。这个变量实际引用了 JMeter 线程中的局部变量容器(本质上是 Map),它是测试用例与 BeanShell 交互的桥梁,常用方法:
a) vars.get(String key):从 jmeter 中获得变量值
b) vars.put(String key,String value):数据存到 jmeter 变量中
c) vars.putObject("OBJ1",new Object());
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
props - (JMeterProperties - class Java.util.Properties):操作 jmeter 属性,该变量引用了 JMeter 的配置信息,可以获取 Jmeter 的属性,它的使用方法与 vars 类似,但是只能 put 进去 String 类型的值,而不能是一个对象。对应于 java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS 为属性名,在文件 jmeter.properties 中定义
b) props.put("PROP1","1234");
prev - (SampleResult):获取前面的 sample 采样的结果,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应 code
更多方法可参考:org.apache.jmeter.samplers.SampleResult
sampler - (Sampler):gives access to the current sampler 访问当前采样
用法案例
在 HTTP 信息头管理器初始化 2 个参数:一个时间戳 ${Timestamp},一个签名校验 ${Sign}