在JMeter中,我需要将一个JSR223采样器(groovy)中的值传递给同一个Thread组中的另一个。现在我使用一个用户参数(vars.put(...), vars.get(...)
),但它的缺点是需要额外的字符串转换才能传递非字符串数据。有没有办法在JMeter中的两个常规采样器之间传递一个对象(例如整数或日期)?
答案 0 :(得分:3)
根据How to use BeanShell: JMeter's favorite built-in component指南:
VARS
vars是代表JMeter变量的最常用组件。它是org.apache.jmeter.threads.JMeterVariables类的实例,提供对当前变量的读/写访问,能够枚举/更改现有变量,创建新变量并获取嵌套属性。
如果您通过以上链接查看JMeterVariables类JavaDoc,您将能够看到putObject(String key, Object value)方法,这似乎是您正在寻找的方法。
所以在第一个采样器中:
Date now = new Date();
vars.putObject("now", now):
在第二个采样器中:
Date then = vars.getObject("now");
或者您可以使用props.put(String, Object)
和props.get(String, Object)
- 在这种情况下,您将能够访问来自不同线程组的值。