1. 程式人生 > 程式設計 >Jmeter常見函式使用方法彙總

Jmeter常見函式使用方法彙總

__intSum

intSum 函式可用於計算兩個或多個整數值的總和。

引用名稱是可選的,但它不能是有效的整數。

  • {__intSum(2,5,MYVAR)} 將返回 7 (2 5) 並將結果儲存在 MYVAR 變數中。因此 {MYVAR} 將等於7。
  • ${__intSum(2,7)} 將返回 14 (2 5 7) 並將結果儲存在 MYVAR 變數中。
  • {__intSum(1,2,${MYVAR})} 如果 MYVAR 值等於8、1 2 5 {MYVAR},則返回16

__longSum

longSum 函式可用於計算兩個或多個長值的總和,而當您知道值不會在間隔-2147483648 到2147483647中時,請使用此方法而不是 __intSum。

  • {__longSum(2,MYVAR)} 將返回 7 (2 5) 並將結果儲存在 MYVAR 變數中。因此 {MYVAR} 將等於7。
  • ${__longSum(2,7)} 將返回 14 (2 5 7) 並將結果儲存在 MYVAR 變數中。
  • {__longSum(1,則返回16

__StringFromFile

StringFromFile 函式可用於從文字檔案讀取字串。這對於執行需要大量可變資料的測試非常有用。例如,在測試銀行應用程式時,可能需要使用不同帳號的100s 或1000s。

另請參閱可更易於使用的 CSV 資料集配置測試元素。但是,當前不支援多個輸入檔案。 每次被呼叫時,它會從檔案中讀取下一行。所有執行緒共享相同的例項,因此不同的執行緒將得到不同的行。當到達檔案末尾時,它將從一開始重新開始讀取,除非已達到最大迴圈計數。如果在測試指令碼中有多個對該函式的引用,則每個檔案都將獨立開啟它,即使檔名相同。[如果該值將再次用於其他位置,請對每個函式呼叫使用不同的變數名。

函式例項線上程之間共享,並且該檔案 (重新開啟) 由任何執行緒碰巧需要下一行輸入,因此使用 threadNumber 作為檔名的一部分將導致不可預知的行為。

如果開啟或讀取檔案時出現錯誤,則該函式將返回字串 '** 錯誤 **'

  • ${__StringFromFile(PIN#'.'DAT,1,2)}-讀取 PIN1.DAT,PIN2.DAT
  • ${__StringFromFile(PIN.DAT,2)}-讀取 PIN2.DAT 兩次

__machineName

machineName 函式返回本地主機名。這將使用 Java 方法 InetAddress getLocalHost () 並將其傳遞到 getHostName ()

Examples:

${__machineName()} 將返回計算機的主機名
${__machineName} 將返回計算機的主機名

__machineIP

machineIP 函式返回本地 IP 地址。這將使用 Java 方法 InetAddress getLocalHost () 並將其傳遞到 getHostAddress ()

  • ${__machineIP()} 將返回計算機的 IP 地址
  • ${__machineIP} 將返回計算機的 IP 地址

__javaScript

javascript 函式執行一條 javascript (不是 Java) 程式碼並返回其值 JMeter javascript 函式呼叫獨立的 javascript 直譯器。

Javascript 被用作指令碼語言,因此您可以進行計算等。

javaScript 不是 JMeter 中效能最好的指令碼語言。如果您的計劃需要大量的執行緒,建議使用 jexl3 或 __groovy 函式。

${__javaScript('${sp}'.slice(7\,99999))} 7後的逗號被轉義。

Examples:

  • ${__javaScript(new Date())} 將返回 Sat 2016年1月09日 16:22:15 GMT 0100 (英語)
  • ${__javaScript(new Date(),MYDATE)} 將返回星期六 2016年1月09日 16:22:15 GMT 0100 (CET) 和儲存在可變 MYDATE
  • ${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),MYRESULT)}

將使用 maxRandom 變數,返回一個介於0和 maxRandom 之間的隨機值,並將其儲存在 MYRESULT

__Random

隨機函式返回位於給定最小值和最大數值之間的隨機數。

${__Random(0,10)} 將返回介於0和10之間的隨機數

{__Random(0,10,MYVAR)} 將返回一個介於0和10之間的隨機數字,並將其儲存在 MYVAR 中。 {MYVAR} 將包含隨機數

__RandomDate

RandomDate 函式返回位於給定開始日期和結束日期值之間的隨機日期。

  • ${__RandomDate(,2050-07-08,)}將返回到現在和2050-07-08 之間的隨機日期。例如2039-06-21
  • ${__RandomDate(dd MM yyyy,08 07 2050,)}將返回一個自定義格式的隨機日期,如 04 03 2034

__RandomString

RandomString 函式返回一個隨機長度字串,使用字元在字元中使用。

  • ${__RandomString(5)}將返回一個隨機字串的5個字元,可讀或不
  • ${__RandomString(10,abcdefg)}將返回一個隨機字串10字元從 abcdefg 集,如 cdbgdbeebd 或 adbfeggfad,..。
  • ${__RandomString(6,a12zeczclk,MYVAR)} 將返回從 a12zeczclk 集選取的隨機字串6個字元,並將結果儲存在 MYVAR 中,MYVAR 將包含字串,如2z22ak 或 z11kce..。

__RandomFromMultipleVars

RandomFromMultipleVars 函式根據源變數提供的變數值返回一個隨機值。

  • ${__RandomFromMultipleVars(val)}將返回一個基於變數的內容的隨機字串考慮到它們是否是多值或不
  • ${__RandomFromMultipleVars(val1|val2)} 將返回一個隨機字串基於變數的內容 val1 和 val2 考慮到它們是否是多值或不
  • ${__RandomFromMultipleVars(val1|val2,MYVAR)}將返回一個基於變數內容的隨機字串 val1 和 val2 考慮到它們是否是多值的,並將結果儲存在 MYVAR

__UUID

UUID 函式返回一個偽隨機型別4通用唯一識別符號 (uuid)。

${UUID()}將返回 UUIDs 的格式: c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd

__CSVRead

CSVRead 函式從 CSV 檔案中返回一個字串 (雞毛 StringFromFile) 注意: JMeter 支援多個檔名。

首次遇到檔名時,檔案將被開啟並讀取到內部陣列中。如果檢測到空行,則將其視為檔案的末尾-這允許使用尾隨註釋。 所有對同一檔名的後續引用都使用相同的內部陣列。注意檔名大小寫對函式很重要,即使作業系統不關心,因此 CSVRead (.txt,0) 和 CSVRead (abc,0) 將引用不同的內部陣列。 '* 別名' 功能允許多次開啟同一檔案,並且允許更短的檔名。 每個執行緒都有自己的內部指標到檔案陣列中的當前行。當執行緒第一次引用該檔案時,它將被分配到陣列中的下一個可用行,因此每個執行緒將從所有其他執行緒訪問其他行。[除非有比陣列中的行多的執行緒。

預設情況下,函式在每個逗號處拆分該行。如果要輸入包含逗號的列,則需要將分隔符更改為不出現在任何列資料中的字元,通過設定屬性: csvread. 分隔符

例如,可以按如下方式設定一些變數:

COL1a ${__CSVRead(random.txt,0)}
COL2a {__CSVRead(random.txt,1)}{__CSVRead(random.txt,next)}
COL1b ${__CSVRead(random.txt,0)}
COL2b {__CSVRead(random.txt,next)}

這將讀取一行中的兩列,以及下一個可用行中的兩列。如果在相同的使用者引數前處理器上定義了所有變數,則這些行將是連續的。否則,另一個執行緒可能會抓取下一行。

該函式不適合用於大型檔案,因為整個檔案儲存在記憶體中。對於較大的檔案,請使用 CSV 資料集配置元素或 StringFromFile。

__property

屬性函式返回 JMeter 屬性的值。如果找不到屬性值,並且未提供預設設定,則返回屬性名稱。提供預設值時,不需要提供函式名-引數可以設定為 null,並且將被忽略。

  • ${__property(user.dir)} - 返回值為 user.dir
  • ${__property(user.dir,UDIR)} - 返回值為user.dir 並儲存在 UDIR
  • ${__property(abcd,ABCD,atod)} - 返回值屬性為 abcd (或 "atod"如果沒有定義) 並儲存在ABCD中
  • ${__property(abcd,atod)} - 返回值屬性為 abcd (或 "atod"如果沒有定義) 但不儲存它

__P

這是一個簡化的屬性函式,用於與命令列上定義的屬性一起使用。與 __property 函式不同,沒有選項儲存變數中的值,如果沒有提供預設值,則假定為1。選擇了1的值,因為它對常見的測試變數 (如迴圈、執行緒計數、坡道等) 有效。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。