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");
添加回答
舉報