如何在BeanShell(jmeter)中获取属性值

7

我有几个线程组。我想在第二个组中使用第一个组的变量。在第二个组中,这个变量应该在BeanShell中使用。 因此,在第一个线程组中,我创建了一个带有以下代码的BeanShell Assertion:

 ${__setProperty(erroriden, ${erroriden1})};

在第二个线程组中,我有一个BeanShell预处理器。 如果有这样一行:
String[] erroriden = (vars.get("erroriden")).split(",");

我尝试了一些类似这样的变化:

String[] erroriden = (vars.get("__property(erroriden)")).split(",");
String[] erroriden = (vars.get("${__property(erroriden)}")).split(",");

但是它没有起作用。请帮助在BeanShell预处理器中使用${__property(erroriden)}。


你有收到任何错误吗?它为什么“不能工作”? - tvgemert
嗯,似乎结构String[] erroriden = (vars.get("${__property(erroriden)}")).split(",");工作正常。日志显示:2015/06/23 16:33:25 WARN - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import java.util.Random; String[] erroriden = (vars.get("6618291,2072106868,601 . . . '' : Typed variable declaration - Ololowa QA
1个回答

11

谢谢你,Dmitri。这已经是你第三次帮助我了! - Ololowa QA
我想澄清一下,这个方法是否可以用于处理大量数据,例如数千个ID? - Ololowa QA
只要它适合JVM Heap,就可以使用。但是,如果此代码被许多线程使用且数据量真的很大,我建议切换到JSR223 Sampler和Groovy作为语言,因为Beanshell存在一些性能限制。请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!指南,了解有关基准测试和有关安装groovy脚本引擎的详细信息。 - Dmitri T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接