Jmeter入門級--函數助手的使用


啟動jmeter后,可以在JMeter的選項菜單中找到函數助手對話框(快捷鍵:Ctrl+Shift+F1)

 可以從下拉列表中選擇一個函數,並為其參數設定值,不同函數要求的參數也不同;

表格的左邊一列是函數參數的簡要描述,右邊一列是供用戶填充參數的值

Tips:

  • 如果參數包含逗號,那么一定要使用 \ 來轉義,否則 JMeter 會把它當作一個參數分隔符;
  • 實際使用時,一般通過函數助手對話框來生成函數字符串,不容易出錯。
  • 一些函數中此項參數:Name of variable in which to store the result (optional)  變量名 :用於后續調用該函數的變量名稱

JMeter 中的函數主要分為如下幾類:

 

 

__setProperty

函數__setProperty用於設置JMeter屬性的值。函數的默認返回值是空字符串,因此該函數可以被用在任何地方,只要對函數本身調用是正確的。

通過將函數可選的第3個參數設置為"true",函數就會返回屬性的原始值。屬性對於JMeter是全局的,因此可以被用來在線程和線程組之間通信。

_CSVRead

  • 從一個 CSV 文件中返回一個字符串,支持多個文件名。
  • 當第一次調用該函數時,文件將被打開並讀取到一個內部數組中。如果檢測到空行,這將被視為文件的末尾。
  • 所有對同一文件名的后續引用都使用相同的內部數組,文件名區分大小寫。
  • 每個線程都有自己的指向文件數組中當前行的內部指針。當線程首先引用文件時,它將在數組中分配下一個空閑行,因此每個線程將訪問與所有其他線程不同的行(除非數組中的線程多於行)。

 

 

 注意:

該函數不適合用於大型文件,因為整個文件都存儲在內存中。

對於較大的文件,最好使用 CSV Data Set Config 或者 StringFromFile。

默認情況下,該函數在每個逗號處拆分行。如果要輸入包含逗號的列,則需要通過設置屬性將分隔符更改為不出現在任何列數據中的字符,修改 jmeter.properties 文件中的 csvread.delimiter=。

1.點擊選項----選擇 函數助手對話框,選擇_CSVRead

CSV file to get values from | * ,這個參數是文件的路徑,csv的文件分隔符是逗號,也可以使用txt文本進行逗號分隔

CSV文件列號| next| *alias  取列數,一一對應

點擊生成,這里是從0開始取值的,0代表取的文件第一列,1代表取的第二列

 

 

  2.將${__CSVRead(E:\JMeter\BI\schoolName.txt,0)}復制

 

  設置線程組--線程數

  將依次取不同入參值請求

 __StringFromFile

  • 用於從文本文件中讀取字符串,每次讀取一行,支持讀取多個文件。
  • 使用配置元件CSV Data Set Config ,也能達到相同的目的,而且方法更簡單,但是它目前不支持多個輸入文件。
  • 每次調用函數,都會從文件中讀取下一行。當到達文件末尾時,函數又會從文件開始處重新讀取,直到最大循環次數。如果在一個測試腳本中對該函數有多次引用,那么每一次引用都會獨立打開文件,即使文件名是相同的(如果函數讀取的值,在腳本其他地方也有使用,那么就需要為每一次函數調用指定不同的變量名)。
  • 如果在打開或者讀取文件時發生錯誤,那么函數就會返回字符串 **ERR**。
  • 啟動序號:初始的序列號,如果省略,那么結束序列號就代表文件的循環讀取次數。
  • 末端序號:結束序列號,如果省略,那么序列號會無限增長。

 

  • #:插入數字,沒有前導零或空格。
  • 000:插入數字,數字不足三位時,將插入前導零補足三位;數字超過三位時,則插入數字實際位數。

用法說明:

 上面的 . 是格式化字符,必須用單引號括起來

__RandomFromMultipleVars

1.首先要創建用戶定義的變量,如下圖

 

  2.創建函數 ${__RandomFromMultipleVars(name1|name2|name3,name)},函數中幾個變量名用‘|’隔開,這個函數的意義在於:在設定的幾個值中隨機使用其一,如下在name1、nema2、name3中隨機使用

  3.在body中使用:"name":"${__RandomFromMultipleVars(name1|name2|name3,name)}",必須和用戶定義的變量一起使用

 __time

${__time(,)} 實時獲取時間,精確到 13 位數(“毫秒” 格式)時間戳:1555655388515

${__time(/1000,)} 實時獲取時間,精確到 10 位數(“秒” 格式)時間戳:1555655438

  ${__time(yyyy-MM-dd HH:mm:ss:SSS,參數名)} 實時獲取時間,格式化生成時間格式 yyyy-MM-dd HH:mm:ss:SSS (年-月-日 時:分:秒:毫秒)

 __TimeShift(格式,日期,移位,語言環境,變量):可對日期進行移位加減操作

“PT20.345S”解析為“20.345秒” “PT15M”解析為“15分鍾” “PT10H”解析為“10小時” “P2D”解析為“2天” “P2DT3H4M”解析為“2天,3小時和4分鍾” “P-6H3M”解析為“-6小時+3分鍾” “-P6H3M”解析為“-6小時-3分鍾” “-P-6H + 3M”解析為“+6小時和-3分鍾”

指定格式:

${__timeShift(yyyy-MM-dd HH:mm:ss,,PT20.345S,,)}:以指定格式創建當前日期,再加上20.345S ${__timeShift(dd-MM-y-HH-mm-ss,,P1DT3H4M,,)}:以指定格式創建當前日期,再加上一天,三小時和四分鍾 ${__timeShift(dd/MM/yyyy,,P-1D,,)}:以指定格式創建當前日期,減去一天 ${__timeShift(dd/MM/yyyy,,P365D,,)}:以指定格式創建當前日期,再加上365天

  

 參考文件:https://blog.csdn.net/lijing742180/article/details/86579160


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM