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