我在jmeter中使用beanshell处理器,在jmeter中,我在一个beanshell处理器中定义FileWriter对象,然后将对象(fstream)传递给另一个beanshell处理器。
String filename = "test.csv";
FileWriter fstream = new FileWriter(filename , true);
props.putObject("fstream", fstream);
现在我正在尝试将fstream对象获取到另一个beanshell处理器
fstream = props.getObject("fstream");
当我运行jmeter脚本时,出现以下错误消息:
方法调用中的错误:方法putObject(java.lang.String, 在java.util.Properties'中找不到java.io.FileWriter)
我知道为什么会收到此错误,因为我试图传递文件编写器对象,但是在属性类中找不到这种类型的函数。 那么我应该如何在beanshell处理器之间传递filewriter对象,请解释并提供示例代码。
答案 0 :(得分:0)
如果它在一个Thread Group的范围内,则可以使用vars.putObject("fstream", fstream);
如果该方案假设使用不同的线程组,则可以仅使用props.put("fstream", fstream);
函数,就像它assumes Object一样
有bsh.shared
namespace,因此您可以通过它共享任意对象,例如:
在第一个脚本元素中:
bsh.shared.fstream = fstream
在第二个脚本元素中:
fstream = bsh.shared.fstream
考虑切换到JSR223 Test Elements and Groovy language,因为与Beanshell相比,此方法具有更好的性能