JMeter - 函式



JMeter 函式和使用者變數

JMeter 函式是特殊的變數,可以填充測試樹中任何取樣器或其他元素的欄位。

  • 函式呼叫如下所示:

${__functionName(var1,var2,var3)}
  • _functionName 匹配函式的名稱。例如 ${__threadNum}

  • 如果函式引數包含逗號,請確保使用 "\" 轉義,如下所示:

${__time(EEE\, d MMM yyyy)}
  • 變數引用如下:

${VARIABLE}

函式列表

下表列出了一組鬆散地按型別分組的函式:

函式型別 名稱 註釋
資訊 threadNum 獲取執行緒號。
資訊 samplerName 獲取取樣器名稱(標籤)。
資訊 machineIP 獲取本地機器的IP地址。
資訊 machineName 獲取本地機器名稱。
資訊 time 以各種格式返回當前時間。
資訊 log 記錄(或顯示)訊息(並返回該值)。
資訊 logn 記錄(或顯示)訊息(空返回值)。
輸入 StringFromFile 從檔案中讀取一行。
輸入 FileToString 讀取整個檔案。
輸入 CSVRead 從 CSV 分隔符檔案中讀取。
輸入 XPath 使用 XPath 表示式從檔案中讀取。
計算 counter 生成遞增數字。
計算 intSum 新增整數。
計算 longSum 新增長整數。
計算 Random 生成隨機數。
計算 RandomString 生成隨機字串。
計算 UUID 生成隨機型別 4 UUID。
指令碼 BeanShell 執行 BeanShell 指令碼。
指令碼 javaScript 處理 JavaScript (Mozilla Rhino)。
指令碼 jexl, jexl2 評估 Commons Jexl 表示式。
屬性 property 讀取屬性。
屬性 P 讀取屬性(簡寫方法)。
屬性 setProperty 設定 JMeter 屬性。
變數 split 將字串拆分為變數。
變數 V 評估變數名。
變數 eval 評估變量表達式。
變數 evalVar 評估儲存在變數中的表示式。
字串 regexFunction 使用正則表示式解析之前的響應。
字串 escapeOroRegexpChars 引用 ORO 正則表示式使用的元字元。
字串 char 根據數字列表生成 Unicode 字元值。
字串 unescape 處理包含 Java 轉義符的字串(例如 \n 和 \t)。
字串 unescapeHtml 解碼 HTML 編碼的字串。
字串 escapeHtml 使用 HTML 編碼對字串進行編碼。
字串 TestPlanName 返回當前測試計劃的名稱。
  • 有兩種型別的函式:

    • 使用者定義的靜態值(或變數)

    • 內建函式

  • 使用者定義的靜態值允許使用者定義變數,在編譯測試樹並提交執行時,這些變數將被其靜態值替換。

  • 變數不能巢狀;即 ${Var${N}} 不起作用。

  • 可以使用 __V (變數) 函式(2.2 版之後)來實現此目的:${__V(Var${N})}。

  • 這種型別的替換無需函式即可實現,但不太方便且不太直觀。

函式和變數的用途

函式和變數可以寫入任何測試元件的任何欄位中。

以下函式在測試計劃中效果很好:

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • property 函式
  • log 函式

在測試計劃中使用的函式有一些限制。當處理函式時,JMeter 執行緒變數尚未完全設定,因此作為引數傳遞的變數名將未設定,變數引用將不起作用。因此,split()regex() 以及變數評估函式將不起作用。threadNum() 函式將不起作用,並且在測試計劃級別沒有意義。

引用變數和函式

  • 在測試元素中引用變數是透過用 '${' 和 '}' 括起變數名來完成的。

  • 函式的引用方式相同,但按照約定,函式的名稱以 "__" 開頭,以避免與使用者值名稱衝突。

  • 某些函式需要引數來配置它們,這些引數以逗號分隔的形式放在括號中。如果函式不需要引數,則可以省略括號。例如:

${__BeanShell(vars.put("name"\,"value"))}
  • 或者,您可以將指令碼定義為變數,例如在測試計劃中:

SCRIPT     vars.put("name","value")
  • 然後可以如下引用指令碼:

${__BeanShell(${SCRIPT})}

函式助手對話方塊

函式助手對話方塊可從 JMeter 的“選項”選項卡中獲得。

  • 使用函式助手,您可以從下拉列表中選擇一個函式,併為其引數賦值。表中的左列提供了引數的簡要說明,右列是您為該引數編寫值的地方。不同的函式需要不同的引數。

  • 完成此操作後,單擊“生成”按鈕,將生成相應的字串,您可以將其複製貼上到需要使用它的測試計劃中的任何位置。

預定義變數

JMeter 內部定義了一些變數。它們是:

  • COOKIE_cookiename - 包含 cookie 值。

  • JMeterThread.last_sample_ok - 上一個樣本是否成功 - true/false。注意 - 這是在執行後處理器和斷言後更新的。

  • START 變數。

預定義屬性

JMeter 定義了一些內建屬性。這些列在下面。為方便起見,START 屬性也被複制到具有相同名稱的變數中。

  • START.MS - JMeter 啟動時間(毫秒)。

  • START.YMD - JMeter 啟動時間(yyyyMMdd)。

  • START.HMS - JMeter 啟動時間(HHmmss)。

  • TESTSTART.MS - 測試啟動時間(毫秒)。

請注意,START 變數/屬性表示 JMeter 啟動時間,而不是測試啟動時間。它們主要用於檔名等。

廣告
© . All rights reserved.