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 2 和HTTP 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資料庫測試計畫