『動善時』JMeter基礎 — 23、JMeter中使用「用戶自定義變數」實現參數化
1、用戶自定義變數介紹
我們可以看到前面一篇文章的例子中,數據文件login_data.csv
的後三個參數都是一樣的,我們可以把這些變數提取出來,放在一個公共的位置,方便我們隨時提取。(凡是可以輸入的位置,都可以使用參數化變數)
在JMeter中,有兩個地方可以設置這種公共的變數:
- 一種是在「測試計劃」介面中設置「用戶自定義變數」。
- 一種是在配置元件中的「用戶自定義變數」組件中添加變數。
之前我們介紹過,JMeter中常用的參數化方式有四種,
- CSV數據文件設置(
CSV Data Set Config
):這種方式是通常所指的參數化。數據存儲在文件中,該種參數化方式取值範圍大,靈活性強,適用於大量測試數據時的使用。 - 用戶參數(
User Parameter
):適用於參數取值範圍很小,需要少量測試數據時使用。 - 用戶自定義變數(
User Defined Variables
):更多用於設置全局變數,常用於資料庫地址,測試環境、開發環境地址等常量配置。 - 函數助手:可使用函數生成隨機數字和隨機字元串實現參數化。
本文我們以在「測試計劃」介面中設置「用戶自定義變數」為例,演示批量實現用戶的登陸操作。
2、使用「用戶自定義變數」實現參數化
(1)測試計劃內包含的元件
添加元件操作步驟:
- 創建測試計劃,並且在測試計劃中添加「用戶自定義變數」數據。
- 創建執行緒組:
選中「測試計劃」右鍵 —> 添加 —> 執行緒(用戶) —> 執行緒組
。 - 在測試計劃(也可以是執行緒組)裡面添加配置元件
CSV Data Set Config
組件:選中「執行緒組」右鍵 —> 添加 —> 配置元件 —> CSV 數據文件設置
。 - 在執行緒組裡面,添加取樣器「HTTP請求」組件:
選中「執行緒組」右鍵 —> 添加 —> 取樣器 —> HTTP請求
。 - 在執行緒組裡面,添加監聽器「察看結果樹」組件:查看結果,
選中「執行緒組」右鍵 —> 添加 —> 監聽器 —> 察看結果樹
。
最終測試計劃中的元件如下:
點擊運行按鈕,會提示你先保存該腳本,腳本保存完成後會直接自動運行該腳本。
(2)數據文件內容
先用Excel表格編輯所需的請求參數,內容如下:
我們需要把該文件保存為.csv
格式。
最後使用Notepad++
打開該文件,然後點擊「編碼」 —> 轉為UTF-8編碼,防止中文亂碼。
最終所得到的.csv
格式文件的內容如下:
(3)測試計劃介面內容
在「測試計劃」介面中,把公共的變數設置「用戶自定義變數」中,如下圖所示:
和在「HTTP請求」組件中添加數據的操作一樣,這樣在該測試計劃中的所有組件都可以使用這些變數。
(4)執行緒組元件內容
如果需要使用CSV文件中所有的數據,需要設置執行緒組元件的執行緒數或循環次數。
因為在CSV數據文件設置組件中,有Recycle on EOF
和Stop thread on EOF
選項的關係,所以設置執行緒數和循環次數都可以實現,使用數據文件中的每一組數據進行測試。
(5)CSV數據文件設置組件內容
我一般常用操作,簡單說明:
- 文件名:就直接瀏覽選擇文件即可,也就是使用數據文件的絕對路徑。
- 文件編碼選擇
UTF-8
。 - 變數名稱:就是把數據文件的每個變數名都填寫上,中間用逗號分割。
- 忽略首行:選擇True,如果CSV文件中首行寫的是變數名稱,選擇忽略首行。
- 分隔符:如果CSV文件中的數據,使用的是逗號隔開,就默是默認值。如果是製表符,就用
\t
表示。 - 是否允許帶引號?:如果變數值中有引號就選擇True,沒有則默認False即可。
- 其他一般默認選擇。如果需求看上面說明中寫的很詳細,按工作中實際情況選擇。
(6)HTTP請求組件內容
在JMeter中使用參數化變數的格式:${變數名}
。
編輯登錄介面內容,資訊如下圖所示:
我們可以看到${變數名}
中的變數名,是以CSV數據文件設置組件中變里名稱中定義變數名為準。如果不在變里名稱欄中定義任何內容,就以數據文件中的標題列名為變數名。
(7)腳本運行結果
該測試腳本運行結果如下圖所示:
說明:後三個參數
submit
、back_act
和act
,是從測試計劃中設置的「用戶自定義變數」所獲取的。
以上就完成了在JMeter中通過「用戶自定義變數」實現參數化的示例。