『動善時』JMeter基礎 — 19、JMeter配置元件【隨機變數】
1、隨機變數介紹
隨機變數應用場景:在一些數據要求不重複,或者對數據取值需要正態分布的時候,我們可以採用隨機變數組件來滿足需求。
隨機變數與用戶自定義變數的區別:
- 隨機變數(random variable):在執行緒每個次循環執行時,取值都會重新生成。
- 用戶自定義變數(User defined variables):在同個執行緒中,用戶自定義變數只會被引用一次,後面不管循環運行多少次,變數值都相同。
2、隨機變數介面詳解
添加隨機變數組件的操作:選中「執行緒組」右鍵 —> 添加 —> 配置元件 —> 隨機變數
。
隨機變數介面如下:
隨機變數組件的詳細說明:
- 名稱:隨機變數組件的自定義名稱,見名知意最好。
- 注釋:即添加一些備註資訊,對該隨機變數組件的簡短說明,以便後期回顧時查看。
- 變數名稱(
Variable Name
):用於在其它元件中引用該值,形式:${variable_name}
。 - 輸出格式(
Output Format
):比如設置為000,會格式化為001,002。假設Output Format
設置為user_000
,那麼格式化後,第一個參數值為user_001
,第二個參數值為user_002
,以此類推。默認格式為Long.toString()
,但是默認格式下,還是可以當作數字使用。 - 最小值(
Minimum Value
):生成的最小隨機數。 - 最大值(
Maximum Value
):生成的最大隨機數。 - 隨機種子(
Seed for Random function
):隨機函數的種子,供隨機數生成器使用的seed構造器。如果為空,則使用默認的Random構造器。 - 每執行緒(用戶)?(
Per Thread(User)?
):如果設置為True,那麼每個執行緒獨享各自的隨機數生成器。如果設置為False,那麼所有執行緒共享同一個隨機數生成器。
提示:無特殊需求的情況下,建議Seed for Random function
不填,Per Thread(User)?
設置為False,也就是這兩項全部默認。
說明:隨機種子是什麼?
隨機種子是用於產生隨機輸出的值。
由於隨機數函數實際上只是一個函數,輸出的「隨機」值總是基於種子。換句話說,如果您使用相同的種子值為隨機輸出生成器播種,您將得到相同的「隨機」結果。這就是為什麼大多數隨機數發生器,使用系統時間來播種它們自己,因為這是高度可變的。
現在回到你的問題。如果你指定一個種子,你會得到固定的隨機輸出。這使您可以輕鬆地使用完全相同的隨機值重複測試,只需傳入相同的種子即可。
3、隨機變數的使用
(1)測試計劃內包含的元件
添加元件操作步驟:
- 創建測試計劃。
- 創建執行緒組:
選中「測試計劃」右鍵 —> 添加 —> 執行緒(用戶) —> 執行緒組
。 - 在執行緒組中添加配置元件”隨機變數”組件:
選中「執行緒組」右鍵 —> 添加 —> 配置元件 —> 隨機變數
。 - 在執行緒組裡面添加取樣器「HTTP請求」組件:
選中「執行緒組」右鍵 —> 添加 —> 取樣器 —> HTTP請求
。 - 在執行緒組裡面添加監聽器「察看結果樹」組件:查看結果,
選中「執行緒組」右鍵 —> 添加 —> 監聽器 —> 察看結果樹
。
最終測試計劃中的元件如下:
點擊運行按鈕,會提示你先保存該腳本,腳本保存完成後會直接自動運行該腳本。
提示:如果有多個執行緒組,需要使用同一個隨機變數組件,就把隨機變數組件提到和執行緒組同一級。
(2)執行緒組介面內容
我們定義循環次數為3,也就是進行3次該請求。(可以修改執行緒數)
(3)隨機變數介面內容
隨機變數介面中,我們定義最小值為1,最大值為999,輸出格式為000,。
隨機變數的引用名稱為randomVariables
,之後我們使用${randomVariables}
的方式,就能夠引用該值了。
如下圖所示:
(4)HTTP請求介面內容
我們在HTTP請求介面中可以引用隨機變數的值,可以寫在任何可輸入的位置。
如下圖所示:
(5)查看結果
我們可以看到下圖中,每個請求中的隨機變數都是不同的值,證明隨機變數組件成功的生成了我們所需要的數值。
以上就是JMeter中隨機變數組件的使用方法。