很多同學(xué),都問(wèn)我:“老師,我的 jmeter 里面,怎么沒(méi)有 MD5 函數(shù),base64 函數(shù)也沒(méi)有,我是不是用了假的 jmeter?”
哈哈哈,不是的。jmeter 的函數(shù),有自帶函數(shù)和擴(kuò)展函數(shù)兩大塊,自帶函數(shù),就是 jmeter 官方自帶的,只要下載 jmeter,就自帶了這些函數(shù),而擴(kuò)展函數(shù),則需要安裝“Custom Jmeter Functions”插件。

安裝了這個(gè)插件之后,在 jmeter 的函數(shù)助手中,你就可以找到如下這些函數(shù)啦,快去試試吧!
chooseRandom 隨機(jī)選擇函數(shù)
隨機(jī)從多個(gè)值(用英文逗號(hào)分隔)中取 1 個(gè),最后一個(gè)為接收的變量名

如:${__chooseRandom(red,green,blue,orange,randomcolor)},從前面的值中隨機(jī)取一個(gè)值

doubleSum 浮點(diǎn)和多值求和
對(duì) 1、2 兩個(gè)參數(shù)中的多個(gè)值(用英文逗號(hào)分開(kāi),可為整數(shù))進(jìn)行求和,傳遞給第三個(gè)變量名

如:${__doubleSum(3.9,35.022,33,89.3,45.2,43.78,dbsum)}

env 獲取環(huán)境變量
獲取第 1 個(gè)參數(shù)填寫(xiě)的環(huán)境變量值,傳遞給第 2 個(gè)參數(shù)變量名,如果沒(méi)有這個(gè)環(huán)境變量,則返回第 3 個(gè)參數(shù)的默認(rèn)值

如:${__env(JAVA_HOME,javahome,null_javahome)}

isDefined 判斷是否定義
填寫(xiě)的變量名,如果已定義可用,返回 true,未定義或不可用,則返回 false

如:{__isVarDefined(dbsum)} {__isVarDefined(javahome)}

MD5 加密函數(shù)
對(duì)參數(shù)內(nèi)容或變量值進(jìn)行 MD5 加密,傳遞給第 2 個(gè)參數(shù)

如:定義一個(gè)變量 pwd,值為 123456, 直接加密和引用變量加密,都相同,說(shuō)明第 1 個(gè)參數(shù)可以引用變量。

base64Encode 使用 base64 編碼函數(shù)
對(duì)第 1 個(gè)參數(shù)中內(nèi)存或變量值進(jìn)行 base64 加密,傳遞給第 2 個(gè)變量名

如:定義一個(gè)變量 vchar,值為 jmeterfunction, 直接加密和引用變量加密,結(jié)果相同,說(shuō)明第 1 個(gè)參數(shù)可以引用變量

base64Decode 使用 base64 解碼函數(shù)
對(duì)第 1 個(gè)參數(shù)內(nèi)容或變量值進(jìn)行 base64 解碼,傳遞給第 2 個(gè)參數(shù)

如,定義變量 dvar 值為 am1ldGVyZnVuY3Rpb24=, 直接對(duì)其解碼和引用變量解碼,結(jié)果相同,說(shuō)明第 1 個(gè)參數(shù),可以引用變量

strLen 字符串或變量值長(zhǎng)度
對(duì)第 1 個(gè)參數(shù)的內(nèi)容或引用變量的值,進(jìn)行長(zhǎng)度測(cè)算,結(jié)果傳遞給第 2 個(gè)參數(shù)

直接對(duì)一個(gè)字符串獲取長(zhǎng)度,和引用變量獲取變量值的長(zhǎng)度,都可以。

substring 切片函數(shù)
對(duì)第 1 個(gè)參數(shù)的內(nèi)容或變量的值,進(jìn)行從第 2 個(gè)參數(shù)值的索引數(shù)字開(kāi)始,到第 3 個(gè)參數(shù)的索引數(shù)字值(不包含)結(jié)束的切片,把結(jié)果傳遞給第 4 個(gè)參數(shù)

如:${__substring(am1ldGVyZnVuY3Rpb24=,3,10,)} 直接截取或引用變量進(jìn)行截取,都可以

strReplace 替換函數(shù)
對(duì)第 1 個(gè)參數(shù)的內(nèi)容或引用變量的值,搜索第 2 個(gè)參數(shù)的內(nèi)容,有,則用第 3 個(gè)參數(shù)的值替換,把替換后的結(jié)果給第 4 個(gè)參數(shù)變量名

如:${__strReplace(jmeterfunction,j,J,)} ${__strReplace(${vchar},f,F,)} 直接對(duì)字符串或引用變量值,進(jìn)行替換,都可以

uppercase 轉(zhuǎn)換為大寫(xiě)

lowercase 轉(zhuǎn)換為小寫(xiě)

iterationNum 迭代次數(shù)函數(shù)
迭代次數(shù)和循環(huán)次數(shù)還是有區(qū)別的

if 二元條件函數(shù)
第 1 個(gè)參數(shù)內(nèi)容或變量值,與第 2 個(gè)參數(shù)內(nèi)容或變量值,相等,則返回第 3 個(gè)參數(shù)的值,不相等,則返回第 4 個(gè)參數(shù)的值,最后把結(jié)果傳遞給第 5 個(gè)參數(shù)變量名
