前言
在jmeter中提供了功能強(qiáng)大的內(nèi)置函數(shù)來(lái)幫助我們處理字符串溉贿、文件讀寫(xiě)仑嗅、計(jì)算畦浓、運(yùn)行外部腳本等等能力痹束。
要想在項(xiàng)目中切實(shí)運(yùn)用來(lái)jmeter完成復(fù)雜的壓測(cè)場(chǎng)景,函數(shù)和變量是必須掌握的高階能力讶请。
下面我們就函數(shù)和變量進(jìn)行一一講解祷嘶。
函數(shù)
我們?cè)谀目梢灾纉meter支持哪些函數(shù)呢?通過(guò)在菜單 “選項(xiàng)” -> "函數(shù)助手對(duì)話(huà)框" 即可打開(kāi)函數(shù)助手夺溢。
通過(guò)函數(shù)助手论巍,我們可以快速的填充對(duì)應(yīng)的參數(shù)來(lái)生成我們所需要的函數(shù)。
下面我們看一下函數(shù)調(diào)用示例說(shuō)明:
${__functionName(param1, param2, param3)}
說(shuō)明:
functionName: 指jmeter內(nèi)置函數(shù)名稱(chēng)
param1, param2, param3: 指該函數(shù)調(diào)用時(shí)需要傳入的參數(shù)
變量
在使用變量前风响,必須先定義變量嘉汰,而定義變量有兩個(gè)地方。
方式一是在測(cè)試計(jì)劃的用戶(hù)定義的變量處進(jìn)行定義钞诡,如下圖
方式二是“配置元件”中的“用戶(hù)定義的變量”來(lái)進(jìn)行定義郑现,入下圖
定義了變量湃崩,怎么引用呢? 下面我們展示下引用格式:
${VARIABLE}
VARIABLE: 定義的變量名稱(chēng)
引用前面定義的username接箫、password則是
${username}
${password}
同樣的道理攒读,引用用戶(hù)定義的變量組件中定義的host、port辛友、count則是
${host}
${port}
${count}
下面我們看下如何把函數(shù)和變量結(jié)合一起應(yīng)用的簡(jiǎn)單示例薄扁,如下圖所示,先定義變量:
使用前面定義的變量废累,來(lái)參數(shù)化邓梅,HTTP請(qǐng)求相關(guān)參數(shù):
看下請(qǐng)求結(jié)果:
函數(shù)列表
下面我們看下jmeter提供的所有內(nèi)置函數(shù)的功能說(shuō)明及使用示例。
總計(jì)七大類(lèi)型邑滨。類(lèi)型如下:
- 信息類(lèi): 用于讀取線程日缨、請(qǐng)求名等
- 輸入類(lèi): 用于讀取文件等
- 計(jì)算類(lèi): 用于計(jì)數(shù)、求和等
- 腳本類(lèi): 用于運(yùn)行各類(lèi)腳本掖看,例如groovy匣距、beanshell等等
- 屬性類(lèi): 讀取或設(shè)置jmeter配置
- 變量類(lèi): 用于對(duì)變量進(jìn)行操作
- 字符串類(lèi): 用于字符串處理
信息類(lèi)
主要用于獲取一些常用的基本信息或是日志輸出控制。
輸入類(lèi)
主要用于從外部文件讀取數(shù)據(jù)哎壳,進(jìn)行參數(shù)化或是說(shuō)關(guān)聯(lián)
計(jì)算類(lèi)
主要用于計(jì)算或是隨機(jī)生成數(shù)據(jù)
腳本類(lèi)
主要用于調(diào)用外部腳本或是解析執(zhí)行腳本
屬性類(lèi)
用于讀取和設(shè)置jmeter配置
變量類(lèi)
主要用于驗(yàn)證變量表達(dá)式引用是否正確
字符串類(lèi)
用于字符串操作
必須掌握的函數(shù)
在上述內(nèi)容中毅待,并沒(méi)有把所有的函數(shù)都一一列出來(lái),但基本把個(gè)大類(lèi)中主要的函數(shù)都已列出归榕,需要大家對(duì)其有個(gè)基本印象尸红,知道有哪些內(nèi)置函數(shù),這些函數(shù)能解決什么問(wèn)題刹泄,以便在實(shí)際項(xiàng)目中走太多彎路外里。
下面把筆者在實(shí)際項(xiàng)目中常用的函數(shù)重點(diǎn)列出來(lái)。我想這也是大家在項(xiàng)目中常用的循签,也是重點(diǎn)掌握的级乐,必須熟練能熟練的應(yīng)用。
注:在本篇中不進(jìn)行示例講解县匠,后續(xù)實(shí)戰(zhàn)專(zhuān)題在分享。
從文件讀取數(shù)據(jù)撒轮,進(jìn)行參數(shù)化
- StringFromFile
- CSVRead
- XPath
腳本支持
- BeanShell(推薦這個(gè))
- groovy
隨機(jī)數(shù)據(jù)生成
- RandomString
- UUID
字符串處理
- urldecode
- urlencode
- char
注:并不是其他函數(shù)不重要乞旦,而是上述函數(shù)是筆者日常項(xiàng)目實(shí)踐中用得最為頻繁,建議必須掌握的题山。
總結(jié)
本文就jmeter函數(shù)和變量進(jìn)行了分享兰粉,這是進(jìn)一步掌握jmeter必備的技能。也是在項(xiàng)目實(shí)踐中進(jìn)行參數(shù)化顶瞳、關(guān)聯(lián)必備的技能玖姑。對(duì)于所有函數(shù)要做到心中有數(shù)愕秫,對(duì)于關(guān)鍵重點(diǎn)的函數(shù)要做到隨時(shí)會(huì)用,靈活應(yīng)用