Jmeter基礎004—-增加參數化
一、參數化概述
1、參數化概念
參數化就是動態的獲取並設置數據,當執行批量操作時,如批量插入或批量刪除,之前每執行完一次就需要修改一次,效率太低,參數化可以代替人工獲取並設置數據,安全且高效!
2、Jmeter參數化組件
- CSV Data Set Config—-CSV數據設置組件
- 用戶參數
- 用戶定義的變數
- 函數
二、參數化實現之CSV Data Set Config
1、概述
CSV Data Set Config—-CSV數據設置組件,是參數化的實現組件之一,通過這個組件可以動態獲取並設置數據,實現批量操作,如:批量添加操作(執行一次,將多條數據插入到資料庫)。
2、實例1:參數化登錄帳號
我們錄製的腳本,內容都是固定的,比如手機號、驗證碼都是我們再錄製過程中輸入的,如果我們希望模擬不同用戶登陸,那麼我們並不需要錄製很多個腳本,而只要將腳本中的用戶名、密碼變成變數,而執行緒執行時,不同執行緒取得不同的變數值即可。
下面我們就舉例說明如何參數化登陸帳號。
(1)測試登錄介面:如下圖,新建登陸的HTTP請求並運行,確保登錄介面運行正常。
(2)創建一個文本文檔,標準的CSV格式文件,如下圖包括3條數據,每一行數據對應一條登錄資訊,不同欄位之間使用英文逗號分隔。
(3)執行緒組右鍵—添加—配置元件—CSV Data Set Config—-CSV,創建一個CSV組件,並聲明數據源、編碼集以及解析格式,如下圖所示:
(4)設置執行緒組的執行緒數為3(因為文件中有三條登錄數據),並修改HTTP請求中的參數值,調用CSV數據文件設置中定義的變數,調用格式${變數名},如下圖所示:
(5)運行測試計劃,查看結果樹的運行結果,如下圖所示:
3、實例2:批量添加
實現思想:
實現步驟:
(1)創建CSV 數據文件設置,如下圖所示:
(2)創建HTTP請求,並在請求中調用CSV中定義的變數
(3)編輯文本文檔,存儲要添加的三條數據
(4)設置執行緒組循環次數為3,並運行測試計劃,查看察看結果樹顯示。
三、參數化之用戶參數
1、用戶參數與CSV參數化的區別
用戶參數和CSV都是將數據設置進第三方,然後循環讀取數據,區別在於:CSV是將數據設置進外部的文本文檔,而用戶參數是將數據設置進Jmeter內置組件。
2、實現流程
(1)搭建框架:創建測試計劃、執行緒組、HTTP請求(請求的JSON數據先不設置)。注意:執行次數是3次(不是設置循環次數,而是設置執行緒數)
(2)創建Jmeter內置組件存儲要插入的數據:測試計劃右鍵—-添加—-前置處理器—-用戶參數,在用戶參數組件介面添加4個變數、3個用戶,如下圖所示:
注意:因為此處添加的是用戶,每個用戶對應一個執行緒 ,添加幾個用戶就應該設置幾個執行緒,所以這裡設置的是執行緒組而不是循環次數。
(3)將用戶參數組件中的變數名稱設置進HTTP請求的Json數據格式中,調用格式:${變數名},如下圖所示:
(4)運行測試計劃,查看察看結果樹。
四、參數化之用戶定義的變數
1、需求
當系統執行增刪改查操作時,資源路徑不一定相同,但存在部分相同,如:都是/api/departments/開頭,為了提高編寫路徑的效率,可以將公共路徑定義成變數,然後再在路徑中使用${變數名}調用變數。註:一般定義、存儲全局使用的變數。
2、實現過程
(1)將公共的路徑數據提取出來使用一個組件存儲,如:/api/departments/。測試計劃右鍵—-添加—-配置元件—-用戶定義的變數,創建用戶定義的變數組件,添加自定義變數,如下圖所示:
(2)分別創建HTTP請求,在路徑中公共部分調用定義的路徑變數,非公共部分路徑與原來一致,如下圖所示:
(3)運行測試計劃,查看結果樹。
五、參數化之函數
1、需求
函數是程式中最基本的封裝單元,封裝了一些常用的功能,比如計數器。在實際應用中當我們需要循環10次查詢資訊時,結果數的請求名稱都是一樣的,我們可以使用計數函數添加標號以示區分。
2、實現流程
(1)打開Jmeter內置的函數組件,一共有三種方式:
- 選項+函數助手對話框
- ctrl+shift+F1
- 工具欄倒數第二個圖標
(2)選擇要使用的函數,給函數傳參,並用Jmeter生成調用格式,如下圖:
註:__counter函數的參數:true,每一個用戶單獨一個計數器;false,所有用戶共用一個計數器.
(3)在需要調用函數的位置使用Jmeter生成的調用格式:${_函數名(參數)}
(4)運行測試計劃,查看結果樹,如下圖所示:
六、總結
1、參數化—-CSV Data Set Config
概念:動態獲取並設置數據,操作數據高效安全(程式代替人工)
實現思想+具體流程:
2、參數化—-用戶參數
實現思想:將數據單獨存儲,然後再將數據讀取到http請求的JSON 數據中
實現流程:
- 設置執行次數(用戶數)
- 添加組件用戶參數存儲多條記錄
- 讀取數據格式: ${變數名 )
3、參數化—-用戶定義的變數
作用:存儲全局性數據
添加格式:添加用戶定義的變數組件—–鍵和值
調用格式:${變數名}
4、參數化—-函數
概念:程式中的功能單元,封裝了部分實現
實現:
- 打開函數功能模組
- 選擇要調用的函數+設置參數+生成調用格式
- 在需要使用的位置調用即可
5、四種參數化方案比較
- CSV和用戶參數使用思想一致,流程上後者更簡單,但是實際應用中,使用CSV居多,因為數據量大時,CSV更方便
- 用戶定義的變數一般用來存儲全局變數,但是使用場景較少
- 函數實現更為靈活且內置了好多實現。
總結:最常用的是參數化方法是:CSV+函數