JMeter函數(shù)可以稱為特殊值,可以填充測(cè)試樹(shù)中任何Sampler或其他元素的字段。
JMeter中函數(shù)的語(yǔ)法:
${__functionName(var1,var2,var3)} ,
這里__ functionName
匹配函數(shù)的名稱,圓括號(hào)圍繞發(fā)送給函數(shù)的參數(shù)。
如果函數(shù)參數(shù)包含逗號(hào),那么請(qǐng)務(wù)必使用“\”
對(duì)其進(jìn)行轉(zhuǎn)義,否則JMeter會(huì)將其視為參數(shù)分隔符。
例如:
${__time(EEE\, d MMM yyyy)}
函數(shù)類(lèi)型 | 名稱 | 注解 |
---|---|---|
信息 | threadNum | 獲取線程號(hào) |
信息 | samplerName | 獲取采樣器名稱(標(biāo)簽)。 |
信息 | log | 記錄(或顯示)消息(并返回值)。 |
信息 | machineName | 獲取本地計(jì)算機(jī)名稱。 |
輸入 | StringFromFile | 從文件中讀取一行。 |
輸入 | FileToString | 讀取整個(gè)文件。 |
輸入 | CSVRead | 從CSV分隔文件中讀取。 |
輸入 | XPath | 使用XPath表達(dá)式從文件中讀取。 |
計(jì)算 | Counter | 生成遞增數(shù)字。 |
計(jì)算 | intSum | 相加int數(shù)字。 |
計(jì)算 | longSum | 相加long數(shù)字。 |
計(jì)算 | Random | 生成一個(gè)隨機(jī)數(shù)。 |
計(jì)算 | RandomString | 生成隨機(jī)字符串。 |
腳本 | BeanShell | 運(yùn)行BeanShell腳本。 |
腳本 | javaScript | 運(yùn)行javaScript腳本。 |
腳本 | jexl, jexl2 | 評(píng)估Commons Jexl表達(dá)式。 |
屬性 | Property | 讀取property文件。 |
屬性 | P | 讀取一個(gè)屬性(速記方法)。 |
變量 | Split | 將字符串拆分為變量。 |
變量 | eval | 評(píng)估變量表達(dá)式。 |
字符串 | regexFunction | 使用正則表達(dá)式解析先前的響應(yīng)。 |
字符串 | escapeOroRegexpChars | 引用ORO正則表達(dá)式使用的元字符。 |
字符串 | Char | 從數(shù)字列表生成Unicode char值。 |
字符串 | Unescape | 包含Java轉(zhuǎn)義的進(jìn)程字符串(例如\n&\t)。 |
字符串 | unescapeHtml | 解碼HTML編碼的字符串。 |
字符串 | escapeHtml | 使用HTML編碼對(duì)字符串進(jìn)行編碼。 |
字符串 | TestPlanName | 返回當(dāng)前測(cè)試計(jì)劃的名稱。 |
注意:JMeter函數(shù)和變量始終區(qū)分大小寫(xiě)。
讓我們考慮一個(gè)Log Function的例子來(lái)理解JMeter中函數(shù)的使用。
JMeter日志函數(shù)的語(yǔ)法:
${__log("message")}
首先,我們將使用HTTP請(qǐng)求采樣器創(chuàng)建一個(gè)簡(jiǎn)單的測(cè)試計(jì)劃。
JMeter/bin
文件夾并雙擊jmeter.bat
文件以啟動(dòng)JMeter界面。我們必須在線程組中添加一個(gè)HTTP請(qǐng)求采樣器。
將HTTP Request Sampler的字段配置為 -
“/”
(斜杠)。 它表示我們想要服務(wù)器的根頁(yè)面。現(xiàn)在,復(fù)制整個(gè)線程組1 并將其粘貼在測(cè)試計(jì)劃中三次。
下圖顯示了測(cè)試計(jì)劃的目錄結(jié)構(gòu)。
Function_test.jmx
。因此,已經(jīng)成功執(zhí)行了測(cè)試計(jì)劃。 現(xiàn)在,我們將使用log函數(shù)作為第一個(gè)HTTP Request Sampler的名稱。
您可以看到日志功能已打印“Hello World”而不是完整的采樣器名稱。 讓我們來(lái)看看一個(gè)時(shí)間函數(shù)的例子,將再次使用它作為第二個(gè)HTTP采樣器的名稱。
時(shí)間函數(shù)的語(yǔ)法:
${__time(dd MM YYYY HH mm ss)}
單擊Run > Start 以執(zhí)行測(cè)試計(jì)劃。
可以看到時(shí)間函數(shù)已打印確切的時(shí)間和日期,而不是完整的采樣器名稱。
要獲得有關(guān)JMeter函數(shù)及其用法的更多信息,請(qǐng)參閱以下鏈接提供的Apache JMeter文檔:
http://jmeter.apache.org/usermanual/functions.html