JMeter-跨線程組取參數值的兩種方法


前言

如果你工作中已經在用jmeter做接口測試,或性能測試了,你可能會遇到一個麻煩。那就是jmeter的變量值不能跨線程組傳遞。如果變量在開始測試之前已經確定了,我們可以用參數化關聯就可以實現。

但是如果值時動態生成,每循環一次,值就變化一次,那么怎么辦呢?今天我給大家講解兩種方法。

方法一:自定義屬性法

思路:jmeter中,屬性是全局的,是可以動態設置的;而變量是獨屬於每個線程的

第一步:我們在jmeter中,添加兩個線程組,在第一個線程組中,調用一個接口,提取你想要的值存儲到一個變量中

 

第二步:在第一個線程組中,添加一個Beanshell后置處理器。然后再打開函數助手對話框(Function Helper Dialog),選擇__setProperty()函數,表達式第一個值輸入將要存放的屬性名稱(英文),

第二個值輸入你在第二步中定義的變量名稱,生成函數,把函數寫到BeanShell后置處理器中。

第三步:在第二個線程組中,添加一個‘用戶參數’,添加變量(Add variable)。設置變量名稱,再次打開函數助手,選擇__P函數,在函數的第一個value值文本框中輸入${第三步設置屬性名稱},生成函數,復制函數,關閉彈窗,把它粘貼到添加的變量的值文本框中。

第四步:在第二個線程組中,接口參數使用定義的變量${變量名稱}

注:需要在測試計划勾選獨立運行每個線程組,如果想要設置多個屬性,可以在第三步的時候,粘貼多個函數,修改函數中屬性名稱和變量名稱,每個函數之間用英文';'分開。

這樣,就實現了跨線程組之間傳遞參數。

方法二:文件轉接法

思路:一個線程組運行結果,存儲到文件,另一個線程組,通過csv讀取文件,然后再提取文件中需要的值,作為變量輸入 

第一步:在jmeter中,添加兩個線程組,在第一個線程組中,調用接口,然后添加監視器->保存響應到文件,設置保存文件的路徑和文件名前綴

第二步:在第二個線程組中,添加一個csv數據文件設置(csv set data config)。文件名設置為第二步中,設置的保存文件路;變量名稱自行定義;分隔符設置為'\t'

 

第三步:添加正則表達式提取器(或json提取器),apply to 選擇'Jmeter variable Name to use',然后輸入csv讀取文件設置的變量名;

第四步:在第二個線程組中,添加接口,使用正則提取器中的變量名稱,至此,文件轉接法完成。


免責聲明!

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



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