『動善時』JMeter基礎 — 24、JMeter中使用“使用者引數”實現引數化

繁華似錦Fighting發表於2021-05-27

1、使用者引數元件介紹

使用者引數(User Parameter)元件在前置處理器元件中新增,前置處理器的作用是在取樣器發出請求之前,執行一些操作。

即:如果將前置處理器附加到取樣器元件中,則它將在該取樣器元件執行之前執行。常用操作如:取樣器引數設定、環境變數設定、指令碼預處理等。

之前我們介紹過,JMeter中常用的引數化方式有四種:

  1. CSV資料檔案設定(CSV Data Set Config):這種方式是通常所指的引數化。資料儲存在檔案中,該種引數化方式取值範圍大,靈活性強,適用於大量測試資料時的使用。
  2. 使用者引數(User Parameter):適用於引數取值範圍很小,需要少量測試資料時使用。
  3. 使用者自定義變數(User Defined Variables):更多用於設定全域性變數,常用於資料庫地址,測試環境、開發環境地址等常量配置。
  4. 函式助手:可使用函式生成隨機數字和隨機字串實現引數化。

本文以前置處理器中的使用者引數元件為例,實現JMeter中的引數化。

2、使用者引數介面介紹

使用者引數元件新增方式:選中“取樣器”右鍵 —> 新增 —> 前置處理器 —> 使用者引數

使用者引數介面如下圖所示:

image

介面說明:

  • 名稱:使用者引數元件的自定義名稱,見名知意最好。
  • 註釋:即新增一些備註資訊,對該使用者引數元件的簡短說明,以便後期回顧時檢視。
  • 每次迭代更新一次:我個人的理解,不同的執行緒需要應用不同的使用者資料,這時就需要勾選此選項。也就是根據執行緒組裡設定的執行緒數,每個執行緒呼叫不同的使用者資料,依次取值。但是我實際操作中,勾選不勾選都能夠依次取值。(如果修改執行緒組介面中的迴圈次數,勾不勾選,都只用一個使用者的值。)
  • 新增變數:橫著新增一行變數資訊,此變數會應用於每個使用者。
  • 刪除變數:刪除所選中的一行資料。
  • 新增使用者:豎著新增一個使用者資訊,一個使用者就是一組測試資料。
  • 刪除使用者:刪除所選中的一列資料。
  • 向上和向下按鈕:就是上下移動所選中變數的位置。

3、使用“使用者引數”元件實現引數化

例如:現在有一個需求,實現批量使用者登陸。

(1)測試計劃內包含的元件

新增元件操作步驟

  1. 建立測試計劃
  2. 建立執行緒組:選中“測試計劃”右鍵 —> 新增 —> 執行緒(使用者) —> 執行緒組
  3. 線上程組中,新增取樣器”HTTP請求“元件:選中“執行緒組”右鍵 —> 新增 —> 取樣器 —> HTTP請求
  4. 在取樣器中,新增前置處理器“使用者引數”元件:選中“取樣器”右鍵 —> 新增 —> 前置處理器 —>使用者引數
  5. 線上程組中,新增監聽器察看結果樹元件:檢視結果,選中“執行緒組”右鍵 —> 新增 —> 監聽器 —> 察看結果樹

最終測試計劃中的元件如下:

image

點選執行按鈕,會提示你先儲存該指令碼,指令碼儲存完成後會直接自動執行該指令碼。

(2)執行緒組元件內容

如果需要使用CSV檔案中所有的資料,需要設定執行緒數。

因為沒有了CSV資料檔案設定元件的參與,所以這裡只能使用執行緒數進行設定,才能實現變數的迴圈應用。

如果使用迴圈次數進行設定,效果就是使用同一使用者,執行幾次登陸操作。

image

(3)HTTP請求元件內容

在JMeter中使用引數化變數的格式:${變數名}

編輯登入介面內容,如下圖所示:

image

(4)使用者引數元件內容

配置好的四組使用者資料,如下圖所示:

image

操作方式說明:

  • 增加變數:就是橫著新增一行,有幾個使用者,這一行中就有幾列。
  • 刪除變數:就是刪除所選中的一行資料。
  • 新增使用者:就是縱向新增一列資料,有幾個變數,這一列中就有幾行。
  • 刪除使用者:就是刪除所選中的一列資料。

(5)指令碼執行結果

該測試指令碼執行結果如下圖所示:

image

以上就完成了在JMeter中通過“使用者引數”元件實現引數化的示例。

4、總結

優先順序說明:

  • 執行緒組下的使用者引數元件 優先順序高於 測試計劃 裡的使用者自定義變數。
  • HTTP 請求下的使用者引數元件 優先順序高於 **執行緒組下 **的使用者引數元件。
  • 若有重名引數,優先取優先順序高的使用者引數。
  • 使用者引數使用者自定義變數重名,則優先取使用者引數元件中的值
    因為配置元件執行完再到前置處理器,所以前置處理器的值會覆蓋配置元件中設定的值。

提示:關於使用”函式助手“實現JMeter的引數化,我們在後邊學習到”函式助手“在說明。

相關文章