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.xuhuhu.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


上一篇: JMeter後處理器元素 下一篇: JMeter資料庫測試計畫