如何将BeanShell参数从一个线程组传递到另一个线程组中的计数器

时间:2015-05-19 10:41:22

标签: multithreading variables properties jmeter beanshell

我需要将一个Thread Group中的值传递给另一个Thread Group,特别是我必须将BeanShell sampler中的值传递给Counter。这是我的BeanShell代码:

Counter.Calendar c = 
Calendar.getInstance();
long now = c.getTimeInMillis();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
long passed = (now - c.getTimeInMillis())/1000;
vars.putObject("startTime",passed);
${__setProperty("start",vars.getObject("startTime"))};

我必须使用传递值作为Start值。我设置$ {__ P(" start")}或$ {__ property(" start&# 34;)}但两者都没有奏效。 我试图将此方法也用于另一个线程组的BeanShell Sample,但是我遇到了错误。在同一个Beanshell中,它可以工作并设置变量。 如何使用属性或其他方式传递此值? 感谢

PS:如果我$ {__ setProperty(" start",123)};它工作(其他线程接收123),否则它没有看到变量。此外,如果我把beanshell sapler放在同一个线程中有问题:假设Counter在采样器之前处理,则计数器值不会更新。

1 个答案:

答案 0 :(得分:0)

属性只能是字符串。尝试这样的事情:

props.put("start", Long.toString(passed));

在接收方,你必须转换回长。

要共享非字符串的数据,可以使用BeanShell共享命名空间bsh.shared。 见http://jmeter.apache.org/usermanual/best-practices.html