Jmeter將token設定為全域性變數並跨執行緒進行傳遞引數

回憶式~過去發表於2021-06-29
我們在用Jmeter做效能測試時,一般會涉及到多個執行緒組。而執行緒之間或介面之間會對上個引數有依賴性,那麼我們將介面中的引數提取出來供其他執行緒組或介面呼叫呢
這就需要使用到__setProperty函式,如何使用通過Jmeter的函式助手來使用並獲取全域性變數呢,以下是詳細使用步驟。

 

提取token

新增一個正規表示式提取器來提取登入介面中返回的token資訊
在這裡插入圖片描述(1)引用名稱 token

(2)正規表示式 “token”:"(.+?)"

(3)模板 用KaTeX parse error: Can't use function '$' in math mode at position 28: …式中有多個正規表示式,則可以是$̲23$等等,表示解析到的第幾個值給title。如:11表示解析到的第1個值

(4)匹配數字 0代表隨機取值,1代表全部取值,通常情況下填0

(5)預設值 如果引數沒有取得到值,那預設給一個值讓它取

設定全域性變數

方法一:新增一個BeanShell PreProcessor
在這裡插入圖片描述
方法二:新增一個BeanShell Sampler

開啟函式助手使用_setProperty函式,填寫要設定的全域性變數名稱及要將哪個變數設定為全域性變數
在這裡插入圖片描述
將函式助手生成的結果複製到BeanShell PreProcessor或者BeanShell Sampler的Script中

使用函式助手獲取全域性變數

方法一:使用__property函式獲取
${__property(token,token,)}
在這裡插入圖片描述
方法二:使用__P函式獲取
${__P(token,)}
在這裡插入圖片描述

新增資訊頭管理器

將獲取全域性變數的函式新增到資訊頭管理器作為全域性使用
在這裡插入圖片描述

執行檢視結果樹

執行成功,併成功返回token值
在這裡插入圖片描述
在這裡插入圖片描述

注意:
如果遇到跨執行緒組呼叫引數值不是token值而是變數名時且登入介面能夠正常使用的情況下,請檢查執行緒組設定:

在這裡插入圖片描述
原因:如果不設定此項,會導致jmeter測試計劃下所有新增的執行緒組同步執行,導致token還沒獲取出來就已經在呼叫了,導致獲取值時出現錯誤

相關文章