Jmeter將token設置為全局變量並跨線程進行傳遞參數


我們在用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還沒獲取出來就已經在調用了,導致獲取值時出現錯誤


免責聲明!

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



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