前言
在jmeter中提供了功能強(qiáng)大的內(nèi)置函數(shù)來(lái)幫助我們處理字符串、文件讀寫、計(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ì)話框" 即可打開(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ù)名稱
param1, param2, param3: 指該函數(shù)調(diào)用時(shí)需要傳入的參數(shù)
變量
在使用變量前,必須先定義變量,而定義變量有兩個(gè)地方。
方式一是在測(cè)試計(jì)劃的用戶定義的變量處進(jìn)行定義,如下圖
方式二是“配置元件”中的“用戶定義的變量”來(lái)進(jìn)行定義,入下圖
定義了變量,怎么引用呢? 下面我們展示下引用格式:
${VARIABLE}
VARIABLE: 定義的變量名稱
引用前面定義的username、password則是
${username}
${password}
同樣的道理,引用用戶定義的變量組件中定義的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ì)七大類型。類型如下:
- 信息類: 用于讀取線程、請(qǐng)求名等
- 輸入類: 用于讀取文件等
- 計(jì)算類: 用于計(jì)數(shù)、求和等
- 腳本類: 用于運(yùn)行各類腳本,例如groovy、beanshell等等
- 屬性類: 讀取或設(shè)置jmeter配置
- 變量類: 用于對(duì)變量進(jìn)行操作
- 字符串類: 用于字符串處理
信息類
主要用于獲取一些常用的基本信息或是日志輸出控制。
輸入類
主要用于從外部文件讀取數(shù)據(jù),進(jìn)行參數(shù)化或是說(shuō)關(guān)聯(lián)
計(jì)算類
主要用于計(jì)算或是隨機(jī)生成數(shù)據(jù)
腳本類
主要用于調(diào)用外部腳本或是解析執(zhí)行腳本
屬性類
用于讀取和設(shè)置jmeter配置
變量類
主要用于驗(yàn)證變量表達(dá)式引用是否正確
字符串類
用于字符串操作
必須掌握的函數(shù)
在上述內(nèi)容中,并沒(méi)有把所有的函數(shù)都一一列出來(lái),但基本把個(gè)大類中主要的函數(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)專題在分享。
從文件讀取數(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)用