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的值,因為它對常見的測試變數 (如迴圈、執行緒計數、坡道等) 有效。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。