2017-03-09 24 views
1

我有我的多个线程并行运行。 任何请求都可能被任意线程多次触发。 我已经使用vars.put()将我的请求变量存储在beanshell中。 我已经使用vars.get()检索了另一个beanshell中的变量。 但是当Thread并行运行时,我希望在回收一个变量时它应该检索当前Thread的值。 有点像在java中我们如何使用这个关键字并获取当前对象的属性。 我该怎么做?如何在多个线程并行运行时将线程变量保存在jmeter中?

int ThreadNum = ctx.getThreadNum(); 
String[] Request_values= new String[Request_variables.length]; 

我怎么会conacat线程数的Request_values?

回答

2

你可以把使用vars.putObject( “”, “”)您的字符串数组; 在这个时候,你可以在你的密钥名中连接你的线程号。

int ThreadNum = ctx.getThreadNum(); 
String[] Request_values= new String[Request_variables.length]; 
vars.putObject("Key_"+ThreadNum ,Request_values); 
3

JMeter变量基本上是ThreadLocal因此你不需要做任何事情。

如果您需要访问线程2中线程1的变量值,则可以使用${__threadNum} function作为前缀或后缀来将当前线程号附加到JMeter变量名称。

+0

https://github.com/susiexd/MyJmeter/issues/2能否请您参考此链接?我在那里发表了我的主张。 – ShraddhaJ

+0

非常感谢。我正在尝试这一个 – ShraddhaJ

+0

请参阅上面的编辑代码和建议我。 – ShraddhaJ