JMETER如何設置全局變量以及調用方法--Lph


Jmeter 接口測試過程中,我們會遇到登錄token 的問題。
如果我們要使用同一個賬號登錄,然后對其他接口進行並發測試。
那么這個時候問題來了,我們怎樣在所有線程中使用同一個token?
Jmeter 的僅一次控制器,僅對同一個線程有效,如果有多個線程,那么還是要登錄多次,產生不同的token。
這些token 中只有一個是有效的,那么其他的就肯定失敗了。
之前每次使用都是現把token全改一遍,特別麻煩,經過百度和自己實踐發現了兩種方式可以跨線程使用同一token。

方法一:

(1)正則提取TOKEN

token.png

(2)添加后置后置處理器—>BEANSHELL POSTPROCESSOR,使用__SETPROPERTY函數設置JMETER屬性值(此值為全局變量值),將所需變量值如${TOKEN} 設置為JMETER屬性值,即NEWTOKEN,示例:

postprocessor.png

方法:

String token = bsh.args[0]; print(token); ${_setProperty(newtoken,${token},)} 
  • 1
  • 2
  • 3

(3)在線程組2中使用_P函數來調用JMETER屬性,獲取屬性值,從而實現跨線程組,參數值傳遞,我的直接寫入信息頭管理器。

調用.png

方法:${__P(newtoken,)}

(4)查看運行結果是否調取成功

token結果.png

方法二:

把登錄模塊放到一個線程里面(這個線程組設置只運行一次),然后獲取token,把這個token 保存到一個全局變量里面${__setProperty(key,${val},)},其他線程組也可以訪問到${__property(key)}。

(1)登錄模塊里面獲取TOKEN

token.png

(2)添加一個 BEAN SHELL SAMPLER, 里面設置全局變量,使用${__SETPROPERTY(TOKEN,${TOKEN},)}的格式

bean.png

(3)在另外一個線程組中引用:

這個時候,無論你有多少個線程,使用的全部都是同一個賬號的token了
beanshell.png


免責聲明!

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



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