目錄
1、使用者引數元件介紹
使用者引數(User Parameter
)元件在前置處理器元件中新增,前置處理器的作用是在取樣器發出請求之前,執行一些操作。
即:如果將前置處理器附加到取樣器元件中,則它將在該取樣器元件執行之前執行。常用操作如:取樣器引數設定、環境變數設定、指令碼預處理等。
之前我們介紹過,JMeter中常用的引數化方式有四種:
- CSV資料檔案設定(
CSV Data Set Config
):這種方式是通常所指的引數化。資料儲存在檔案中,該種引數化方式取值範圍大,靈活性強,適用於大量測試資料時的使用。 - 使用者引數(
User Parameter
):適用於引數取值範圍很小,需要少量測試資料時使用。 - 使用者自定義變數(
User Defined Variables
):更多用於設定全域性變數,常用於資料庫地址,測試環境、開發環境地址等常量配置。 - 函式助手:可使用函式生成隨機數字和隨機字串實現引數化。
本文以前置處理器中的使用者引數元件為例,實現JMeter中的引數化。
2、使用者引數介面介紹
使用者引數元件新增方式:選中“取樣器”右鍵 —> 新增 —> 前置處理器 —> 使用者引數
。
使用者引數介面如下圖所示:
介面說明:
- 名稱:使用者引數元件的自定義名稱,見名知意最好。
- 註釋:即新增一些備註資訊,對該使用者引數元件的簡短說明,以便後期回顧時檢視。
- 每次迭代更新一次:我個人的理解,不同的執行緒需要應用不同的使用者資料,這時就需要勾選此選項。也就是根據執行緒組裡設定的執行緒數,每個執行緒呼叫不同的使用者資料,依次取值。但是我實際操作中,勾選不勾選都能夠依次取值。(如果修改執行緒組介面中的迴圈次數,勾不勾選,都只用一個使用者的值。)
- 新增變數:橫著新增一行變數資訊,此變數會應用於每個使用者。
- 刪除變數:刪除所選中的一行資料。
- 新增使用者:豎著新增一個使用者資訊,一個使用者就是一組測試資料。
- 刪除使用者:刪除所選中的一列資料。
- 向上和向下按鈕:就是上下移動所選中變數的位置。
3、使用“使用者引數”元件實現引數化
例如:現在有一個需求,實現批量使用者登陸。
(1)測試計劃內包含的元件
新增元件操作步驟:
- 建立測試計劃
- 建立執行緒組:
選中“測試計劃”右鍵 —> 新增 —> 執行緒(使用者) —> 執行緒組
。 - 線上程組中,新增取樣器”HTTP請求“元件:
選中“執行緒組”右鍵 —> 新增 —> 取樣器 —> HTTP請求
。 - 在取樣器中,新增前置處理器“使用者引數”元件:
選中“取樣器”右鍵 —> 新增 —> 前置處理器 —>使用者引數
。 - 線上程組中,新增監聽器察看結果樹元件:檢視結果,
選中“執行緒組”右鍵 —> 新增 —> 監聽器 —> 察看結果樹
。
最終測試計劃中的元件如下:
點選執行按鈕,會提示你先儲存該指令碼,指令碼儲存完成後會直接自動執行該指令碼。
(2)執行緒組元件內容
如果需要使用CSV檔案中所有的資料,需要設定執行緒數。
因為沒有了CSV資料檔案設定元件的參與,所以這裡只能使用執行緒數進行設定,才能實現變數的迴圈應用。
如果使用迴圈次數進行設定,效果就是使用同一使用者,執行幾次登陸操作。
(3)HTTP請求元件內容
在JMeter中使用引數化變數的格式:${變數名}
。
編輯登入介面內容,如下圖所示:
(4)使用者引數元件內容
配置好的四組使用者資料,如下圖所示:
操作方式說明:
- 增加變數:就是橫著新增一行,有幾個使用者,這一行中就有幾列。
- 刪除變數:就是刪除所選中的一行資料。
- 新增使用者:就是縱向新增一列資料,有幾個變數,這一列中就有幾行。
- 刪除使用者:就是刪除所選中的一列資料。
(5)指令碼執行結果
該測試指令碼執行結果如下圖所示:
以上就完成了在JMeter中通過“使用者引數”元件實現引數化的示例。
4、總結
優先順序說明:
- 執行緒組下的使用者引數元件 優先順序高於 測試計劃 裡的使用者自定義變數。
- HTTP 請求下的使用者引數元件 優先順序高於 **執行緒組下 **的使用者引數元件。
- 若有重名引數,優先取優先順序高的使用者引數。
- 若使用者引數和使用者自定義變數重名,則優先取使用者引數元件中的值 。
因為配置元件執行完再到前置處理器,所以前置處理器的值會覆蓋配置元件中設定的值。
提示:關於使用”函式助手“實現JMeter的引數化,我們在後邊學習到”函式助手“在說明。