JMeter函式


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測試計劃

  • 進入到JMeter/bin檔案夾並雙擊jmeter.bat檔案以啟動JMeter介面。
  • 選擇測試計劃節點,然後右鍵單擊所選專案。
  • 滑鼠懸停在「Add」選項上,然後將顯示元素列表。
  • 選擇「Threads (Users)」 > 「Thread Grou」
  • 將此執行緒組重新命名為Thread Group 1

新增取樣器

我們必須線上程組中新增一個HTTP請求取樣器。

  • 選擇「Thread Group」,然後右鍵單擊所選項。
  • 滑鼠懸停在「Add」選項上,然後將顯示元素列表。
  • 選擇Sampler > HTTP請求選項。
  • 它將新增一個空的HTTP請求取樣器。

將HTTP Request Sampler的欄位組態為 -

  • Name - HTTP請求取樣器1。
  • Server名稱或IP - 在範例中,Web伺服器名稱將為 - www.tw511.com 。
  • Protocol - 此欄位保持不變。
  • Path - 我們將其寫為「/」(斜槓)。 它表示我們想要伺服器的根頁面。

現在,複製整個執行緒組1 並將其貼上在測試計劃中三次。

  • 將其他執行緒組分別重新命名為執行緒組2執行緒組3
  • 將其他取樣器分別重新命名為HTTP Request 2HTTP Request 3

下圖顯示了測試計劃的目錄結構。

新增監聽器

  • 選擇「Test Plan」節點,然後右鍵單擊所選專案。
  • 滑鼠懸停在「Add」選項上,然後將顯示元素列表。
  • 選擇 Listener -> Summary Report

儲存並執行測試計劃

  • 單擊檔案 -> 將測試計劃另存為。
  • 將整個測試計劃儲存為Function_test.jmx
  • 單擊「Run」 -> 「Start」 以執行測試計劃。

驗證輸出

因此,已經成功執行了測試計劃。 現在,我們將使用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