1. 程式人生 > 其它 >幾種常見的Jmeter引數化方式

幾種常見的Jmeter引數化方式

很多人在寫jmeter指令碼時,介面的引數都是固定的,比如id=1,但是這樣並不能真正模擬多個使用者來發起請求。因此介面引數需要使用動態的引數。

Jmeter支援豐富的引數化函式和元件,可以使用“函式助手”來幫我們生成對應的函式,接下來介紹一些常用的引數化函式。




隨機數函式

隨機數字是一種比較常見的引數化場景,比如在/pinter/com/getSku?id=1介面中,id引數可以傳一個隨機數,範圍是從1-1000,開啟函式助手,選擇random函式,設定隨機範圍,就可以生成一個隨機數函式

在HTTP請求的URL裡,將原來的id=1,替換為id=${__Random(1,1000,)} 即完成了id的引數化處理。

執行指令碼,在檢視結果樹的“請求”-“request body”裡,可以看到傳送到服務端的id資料是一個隨機的數字






隨機字串

在函式助手中,找到randomString函式

  • Random string length:生成隨機字串的長度

  • Chars to use for random string generation:從哪些字元中生成隨機字串,這裡可以寫字元和數字

函式的使用方法和上述是一樣的,不再贅述。






時間戳

time函式可以獲取當前的時間戳

UUID
UUID是一個不重複的字串,可以用在某些需要使用唯一不重複字串的場景下。




檔案引數化

在某些場景下,要求引數是從某個檔案裡讀取的,Jmeter還提供了更強大的引數化元件:“CSV資料檔案設定(CSV data set config)”

使用方法
先準備一個引數檔案(文字型別檔案即可,如txt、csv,注意不能是Excel),檔案裡可以有一列或者多列資料,以逗號分隔,如

線上程組上右鍵-新增-配置元件-CSV資料檔案設定

  • 檔名:引數檔案的路徑

  • 檔案編碼:預設為空,如果有中文引數,可以在下拉框裡選擇utf-8

  • 變數名稱:檔案中每列資料對應的引數名,逗號分隔,如username,password

  • 忽略首行:是否忽略第一行資料?預設是不忽略,即讀取第一行資料

  • 分隔符:預設的逗號,也可以使用tab鍵分隔,用\t

  • 是否允許引號:檔案資料裡有引號嗎,如果有選true,預設是false

  • 遇到檔案結束再次迴圈:如果期望檔案中的資料讀取完畢後,可以繼續從第一行讀取,選True,否則選false

  • 遇到檔案結束停止執行緒:檔案資料讀取完畢後,是否停止執行緒執行。一般配合上面引數使用,如果上面選True,這裡就選false,上面選false,這裡選true

檔名:引數檔案的路徑


檔案編碼:預設為空,如果有中文引數,可以在下拉框裡選擇utf-8


變數名稱:檔案中每列資料對應的引數名,逗號分隔,如username,password


忽略首行:是否忽略第一行資料?預設是不忽略,即讀取第一行資料


分隔符:預設的逗號,也可以使用tab鍵分隔,用\t


是否允許引號:檔案資料裡有引號嗎,如果有選true,預設是false


遇到檔案結束再次迴圈:如果期望檔案中的資料讀取完畢後,可以繼續從第一行讀取,選True,否則選false


遇到檔案結束停止執行緒:檔案資料讀取完畢後,是否停止執行緒執行。一般配合上面引數使用,如果上面選True,這裡就選false,上面選false,這裡選true


執行緒共享模式:檔案中的引數都可以讓哪些執行緒使用,一般都選所有執行緒






使用引數

csv引數檔案設定完畢後,可以在login接口裡,直接通過${引數名}的方式來使用引數

線上程組上設定執行次數為4,然後執行指令碼

在檢視結果樹中可以看到,每次請求都使用了引數檔案裡的一行引數

總結

本文講解了兩種引數化型別:函式引數化和檔案引數,如果大家在學習過程中有任何問題,歡迎掃碼諮詢