幾種常見的Jmeter引數化方式
很多人在寫jmeter指令碼時,介面的引數都是固定的,比如id=1,但是這樣並不能真正模擬多個使用者來發起請求。因此介面引數需要使用動態的引數。
Jmeter支援豐富的引數化函式和元件,可以使用“函式助手”來幫我們生成對應的函式,接下來介紹一些常用的引數化函式。
隨機數函式
隨機數字是一種比較常見的引數化場景,比如在/pinter/com/getSku?id=1介面中,id引數可以傳一個隨機數,範圍是從1-1000,開啟函式助手,選擇random函式,設定隨機範圍,就可以生成一個隨機數函式
在HTTP請求的URL裡,將原來的id=1,替換為id=${__Random(1,1000,)} 即完成了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,然後執行指令碼
在檢視結果樹中可以看到,每次請求都使用了引數檔案裡的一行引數
總結
本文講解了兩種引數化型別:函式引數化和檔案引數,如果大家在學習過程中有任何問題,歡迎掃碼諮詢