JMeter函式可以稱為特殊值,可以填充測試樹中任何Sampler或其他元素的欄位。
JMeter中函式的語法:
${__functionName(var1,var2,var3)} ,
這裡__ functionName
匹配函式的名稱,圓括號圍繞傳送給函式的引數。
如果函式引數包含逗號,那麼請務必使用「\」
對其進行跳脫,否則JMeter會將其視為引數分隔符。
例如:
${__time(EEE\, d MMM yyyy)}
函式型別 | 名稱 | 註解 |
---|---|---|
資訊 | threadNum | 獲取執行緒號 |
資訊 | samplerName | 獲取取樣器名稱(標籤)。 |
資訊 | log | 記錄(或顯示)訊息(並返回值)。 |
資訊 | machineName | 獲取本地計算機名稱。 |
輸入 | StringFromFile | 從檔案中讀取一行。 |
輸入 | FileToString | 讀取整個檔案。 |
輸入 | CSVRead | 從CSV分隔檔案中讀取。 |
輸入 | XPath | 使用XPath表示式從檔案中讀取。 |
計算 | Counter | 生成遞增數位。 |
計算 | intSum | 相加int數位。 |
計算 | longSum | 相加long數位。 |
計算 | Random | 生成一個亂數。 |
計算 | RandomString | 生成隨機字串。 |
指令碼 | BeanShell | 執行BeanShell指令碼。 |
指令碼 | javaScript | 執行javaScript指令碼。 |
指令碼 | jexl, jexl2 | 評估Commons Jexl表示式。 |
屬性 | Property | 讀取property檔案。 |
屬性 | P | 讀取一個屬性(速記方法)。 |
變數 | Split | 將字串拆分為變數。 |
變數 | eval | 評估變數表示式。 |
字串 | regexFunction | 使用正規表示式解析先前的響應。 |
字串 | escapeOroRegexpChars | 參照ORO正規表示式使用的元字元。 |
字串 | Char | 從數位列表生成Unicode char值。 |
字串 | Unescape | 包含Java跳脫的進程字串(例如\n&\t)。 |
字串 | unescapeHtml | 解碼HTML編碼的字串。 |
字串 | escapeHtml | 使用HTML編碼對字串進行編碼。 |
字串 | TestPlanName | 返回當前測試計劃的名稱。 |
注意:JMeter函式和變數始終區分大小寫。
讓我們考慮一個Log Function的例子來理解JMeter中函式的使用。
JMeter紀錄檔函式的語法:
${__log("message")}
首先,我們將使用HTTP請求取樣器建立一個簡單的測試計劃。
JMeter/bin
檔案夾並雙擊jmeter.bat
檔案以啟動JMeter介面。我們必須線上程組中新增一個HTTP請求取樣器。
將HTTP Request Sampler的欄位組態為 -
「/」
(斜槓)。 它表示我們想要伺服器的根頁面。現在,複製整個執行緒組1 並將其貼上在測試計劃中三次。
下圖顯示了測試計劃的目錄結構。
Function_test.jmx
。因此,已經成功執行了測試計劃。 現在,我們將使用log函式作為第一個HTTP Request Sampler的名稱。
您可以看到紀錄檔功能已列印「Hello World」而不是完整的取樣器名稱。 讓我們來看看一個時間函式的例子,將再次使用它作為第二個HTTP取樣器的名稱。
時間函式的語法:
${__time(dd MM YYYY HH mm ss)}
單擊Run > Start 以執行測試計劃。
可以看到時間函式已列印確切的時間和日期,而不是完整的取樣器名稱。
要獲得有關JMeter函式及其用法的更多資訊,請參閱以下連結提供的Apache JMeter文件:
http://jmeter.apache.org/usermanual/functions.html