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

How pass BeanShell param from one Thread Group to a Counter in another Thread Group

我需要将一个值从一个线程组传递到另一个线程组,特别是我必须将一个值从 BeanShell 采样器传递到计数器。这是我的 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"))};

并且我必须使用 传递的 值作为开始 value.I 设置 ${__P("start")} 或 ${ __property("start")} 但两者均无效。 我尝试将此方法也用于另一个线程组的 BeanShell 样本,但出现错误。在同一个 Beanshell 中,它可以工作并设置变量。 我如何使用属性或其他方式来传递这个值? 谢谢

PS:如果我${__setProperty("start",123)};它有效(其他线程收到 123),否则它看不到变量。另外,如果我将 beanshell sapler 放在同一个线程中,则会出现问题:假设在采样器之前处理了计数器,则不会更新计数器值。

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

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

在接收方,您必须转换回长整数。

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