Jmeter在一次線程里多次調用同一個拼接參數,不使用自帶拼接函數


記錄一下使用Jmeter在一次線程里需要多次調用同一個參數時的拼接方法

 

在對創建、編輯等接口使用Jmeter進行性能、穩定性測試時,需要造多個名稱相同,編號不同的參數。

例如:productName參數,對應字段分別為testCreate001、testCreate002、testCreate003……

原先是使用用戶參數+計數器組件,加上Jmeter自帶的__V{}函數,像這樣:

 

 

 

 

 

這種方法在我沒有將productName的字段testCreate參數化的時候很好用 ,無論怎么調用,在運行一次線程productName對應的字段總是testCreate001、testCreate002這樣。但后來為了測試更方便一些,我把productName做了參數化,放在了CSV文件里。此時我把用戶參數里productName對應的字段修改成了${__V(${productName}${n})},使用時發現了一個問題:

如果一個線程里使用了多次productName參數,每次調用的名稱都不一樣,第一次的時候是testCreate001001,第二次就變成了testCreate001001001001,因為調用的次數多,甚至看到了testCreate001001001001001001001001001001001001001001

思考了一下,應該是每次使用參數的時候,__V函數都在起作用。我需要讓這個參數在多次調用和循環的線程中顯示正常,嘗試用僅一次控制器,結果這個組件似乎對用戶參數不起作用,輸出的參數直接變成了testCreate,都沒有拼接。

 

最后的解決辦法:

既然__V函數這么不智能,只能自己來了。直接使用Beanshell代碼進行拼接。在線程的最前面放一個Beanshell Sampler,然后寫拼接代碼:

String productName = vars.get("productName");
String n = vars.get("n");

String productName = productName + n;
vars.put("productName",productName);

最后輸出的參數都一致了,而且會跟着計數器的循環自增。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM