Jmeter內(nèi)置變量vars和props的使用詳解
vars 變量
vars 變量是線程本地變量,它們只能在同一線程組內(nèi)的所有線程中使用(線程組內(nèi)不同線程之間變量不共享)。每個線程都有自己的一組 vars 變量。vars 變量可以通過如下方式設(shè)置和訪問:
在非 beanshell 環(huán)境里面可以使用 ${varName} 語法訪問變量的值。

訪問變量
在 beanshell 環(huán)境里面可以使用 vars.get("varName") 語法訪問變量的值,vars.put("varName", "value") 語法設(shè)置變量的值。

設(shè)置變量
在 JMeter 中,vars 變量通常用于在測試執(zhí)行期間動態(tài)生成值,如從響應(yīng)中提取數(shù)據(jù)并將其存儲在變量中以供后續(xù)請求使用。
props 變量
props 變量是全局變量,它們可以在任何線程組中使用。所有線程共享同一組 props 變量。props 變量可以通過如下方式設(shè)置和訪問:
在非 beanshell 環(huán)境里面可以使用${__P(propName)} 語法訪問變量的值。

訪問變量
在 beanshell 環(huán)境里面可以使用 props.get("propName") 語法訪問變量的值, props.put("propName", "value") 語法設(shè)置變量的值。

設(shè)置變量
在 JMeter 中,props 變量通常用于在測試執(zhí)行期間傳遞數(shù)據(jù),如測試參數(shù),即使在不同的線程組之間也可以使用。
區(qū)別
vars 只能在當(dāng)前線程組內(nèi)使用(線程組內(nèi)不同線程之間變量不共享),props 可以跨線程組使用 vars 只能保持String 或者Object, props 是 Hashtable 對象
vars:
1、本質(zhì)是Map,是單個線程的本地屬性,能在beanshell里面進行賦值和取值
2、示例
vars.get("saleOrderCode"); // 讀取字符串變量saleOrderCode
vars.put("manufacturingOrderCode",vars.get("saleOrderCode").replace('S','M')); //賦值變量manufacturingOrderCode
3、如果要在非beanshell里面進行取值可以使用${變量名}。注意:此時Http Request和BeanShell Sampler在同一個線程組內(nèi)

props:
1、本質(zhì)是Map,是jmeter全局變量(也即屬性)的引用,能在beanshell里面進行賦值和取值
2、示例
props.put("ssoToken",${ssoToken}); //將Json提取器中的ssoToken,設(shè)置為全局變量,方便其他線程使用
3、如果要在非beanshell里面進行取值可以使用jmeter內(nèi)置函數(shù):${__property(變量名)}
注意:${__property()}函數(shù)中,變量名不需要加引號
如:${__property(usernameProp)}。注意:此時Http Request和BeanShell Sampler在可以在不同線程組

4、也可以使用
${__BeanShell(props.get(“變量名”),)}
注意:${__BeanShell()}函數(shù)是創(chuàng)建了一個小型的java環(huán)境,可以直接執(zhí)行一些簡單的表達式
如:${__BeanShell(props.get("usernameProp"),)}
以上就是Jmeter內(nèi)置變量vars和props的使用詳解的詳細內(nèi)容,更多關(guān)于Jmeter vars和props的使用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
crawler4j抓取頁面使用jsoup解析html時的解決方法
crawler4j對response沒有指定編碼的頁面,解析成亂碼,很讓人煩惱,下面給出解決方法,需要的朋友可以參考下2014-04-04
Java操作redis設(shè)置第二天凌晨過期的解決方案
這篇文章主要介紹了Java操作redis設(shè)置第二天凌晨過期的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Java 中 getClass() 方法的使用與原理深入分析(對象類型信息)
在 Java 編程中,getClass() 是一個非常重要的方法,它用于獲取對象的運行時類信息,無論是調(diào)試代碼、反射操作,還是類型檢查,getClass() 都扮演著關(guān)鍵角色,本文將深入探討 getClass() 的使用方法、底層原理以及實際應(yīng)用場景,感興趣的朋友一起看看吧2024-12-12
SpringBoot整合Mybatis-Plus+Druid實現(xiàn)多數(shù)據(jù)源配置功能
本文主要講解springboot?+mybatisplus?+?druid?實現(xiàn)多數(shù)據(jù)源配置功能以及一些必要的準備及代碼說明,具有一定的參考價值,感興趣的小伙伴可以借鑒一下2023-06-06
SpringBoot+URule實現(xiàn)可視化規(guī)則引擎的方法示例
規(guī)則引擎其實是一種組件,它可以嵌入到程序當(dāng)中,將程序復(fù)雜的判斷規(guī)則從業(yè)務(wù)代碼中剝離出來,使得程序只需要關(guān)心自己的業(yè)務(wù),而不需要去進行復(fù)雜的邏輯判斷,本文給大家介紹了SpringBoot+URule實現(xiàn)可視化規(guī)則引擎的方法示例,需要的朋友可以參考下2024-12-12
Java?Stream?API與函數(shù)式編程的實戰(zhàn)詳解
Java?8引入的Stream?API和函數(shù)式編程特性,徹底改變了Java開發(fā)者編寫代碼的方式,本文將深入探討Java?Stream?API與函數(shù)式編程的核心概念,最佳實踐以及性能優(yōu)化技巧,感興趣的小伙伴可以了解下2025-06-06

