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中隨機變數元件的使用方法。