3 回答
TA贡献1829条经验 获得超7个赞
根据JMeter 的最佳实践,使用vars.get
inside script 而不是${}
:
props.put("t_" + vars.get("offer_list_rand"),offer_list);
TA贡献1831条经验 获得超4个赞
你在做一些奇怪的事情
您的 Groovy 脚本将无法工作,因为您不能将
offer_list_rand
变量引用为${offer_list_rand}
,请考虑在 Groovy 脚本中使用Parameters
任何JMeter 函数和/或变量引用的部分您的方法将不起作用,因为第二个线程组对
${offer_list_rand}
变量值一无所知,因为 JMeter 变量是线程组的本地变量。从技术上讲,您可以将 JMeter 属性命名为 JMeter 变量,例如:vars.put('offer_list_rand', 'foo') props.put('offer_list_rand', 'bar')
并且您将拥有具有不同值的不同对象,该变量将
foo
在定义它的线程组中可见,并且该属性将对bar
整个 JVM 可见,直到您关闭或重新启动 JMeter。使用 JMeter 内置测试元素(或插件)而不是编写脚本总是更快/更容易/更好,特别是在您的情况下,您可以轻松使用__setProperty()函数或线程间通信插件,甚至移动您的逻辑从 setUp 线程组进入普通线程组,并使用只有一次控制器或如果控制器使其仅运行一次
TA贡献1877条经验 获得超1个赞
重新检查后,这是解决方案。在我放置的 Jssr 预处理器中
String list_rand = list_obj.get_random_list_name("temp_");
props.put('list_rand',list_rand);
在我放的处理器中
List<String> list2 = new ArrayList<String>();
props.put('list_rand_'+ props.get('list_rand'),list2);
当我想在其他线程组中调用它时,我使用了
List<String> myList = props.get('list_rand'+ props.get('list_rand'));
myList.add("333");
添加回答
举报