3 回答
TA貢獻1829條經驗 獲得超7個贊
根據JMeter 的最佳實踐,使用vars.getinside 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");
添加回答
舉報
