線程(用戶)就是我們通常要添加運行的線程。通俗的講,一個線程組可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。
線程組中包含的線程數量在測試執行過程中是不會發生改變的。每個線程完全獨立的運行測試計划,互不干擾,多個線程用於模仿對服務器的並發訪問。
所有控制器和采樣器必須在線程組下。其他元件(例如偵聽器)可以直接放置在測試計划下,在這種情況下,它們將應用於所有線程組。
1、添加線程組
“測試計划”右鍵 —> “添加” —> “線程(用戶)”,有三個添加線程組的選項。如下圖:
注意:如果你還安裝了其他的組件或者插件的話,還會有一些其他的線程選項。
說明:
Setup thread group
:setUp線程組
一種特殊類型的線程組,可用於執行預測試操作。和普通的線程組元件一樣,不同的是,這種類型的線程執行測試前進行定期線程組的執行。
換句話說,setUp線程組執行順序是,它會在普通線程組執行之前被觸發。
應用場景舉例:測試數據庫操作功能時,用於執行打開數據庫連接的操作。Teardown thread group
:tearDown線程組
一種特殊類型的線程組,可用於執行測試后動作。和普通的線程組元件一樣,不同的是,這些類型的線程執行測試結束后執行定期的線程組。
換句話說,這些類型的線程執行測試結束后執行定期的線程組。
應用場景舉例:測試數據庫操作功能時,用於執行關閉數據庫連接的操作,或者清理測試數據。
需注意:默認情況下,如果測試按預期完成,則TearDown線程組將不會運行。
如果需要運行TearDown線程組,則需要取保測試計划Test Plan
界面中“Run tearDown Thread Groups after shutdown of main threads”
(主線程結束后運行tearDown線程組)選項被勾選。Thread group
:線程組
這個就是我們通常添加運行的線程。通俗的講一個線程組,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。
2、線程組界面說明
線程組、setUp線程組、tearDown線程組三個線程組的內容界面是一樣的,都如下圖:
說明:
(1)取樣器錯誤后要執行的動作(Action to be taken after a Sample error):
繼續(Continue)
:忽略錯誤,繼續執行。啟動下一進程循環(Start Next Thread Loop)
: 忽略錯誤,線程當前循環終止,執行下一個循環。停止線程(Stop Thread)
:當前線程停止執行,不影響其他線程正常執行。停止測試(Stop Test)
:整個測試會在,當前所有正在執行的線程,執行完畢后停止。立即停止測試(Stop test now)
:整個測試會立即停止執行,當前正在執行的取樣器可能會被中斷。
(2)線程屬性(Thread Praperties):
線程數(Number of Thread (users))
:線程數也就是並發數,每個線程將會完全獨立的運行測試計划,互不干擾。
每一個線程就相當於一個用戶,多個線程用於模仿對服務器的並發訪問。Rum-up時間(秒)
:在該設置時間內啟動所有線程(就是啟動上邊設置的線程數)。
換句話說,就是設置時間內把請求發送出去了。(並不包括返回結果的時間)循環次數(Loop Count)
:該項設置線程組在結束前每個線程循環的次數。
換句話說,就是上邊設置的線程數,執行的次數。
可以勾選永遠,如果未設置運行時間,需要手動停止。延遲線程創建直到需要(Delay Thread creation until needed)
:默認情況下,測試開始的時候,所有線程就被創建完了。如果勾選了此選項,那么線程只會在合適的需要用到的時候創建。調度器(Scheduler)
:可以更靈活的控制線程組執行的時間
(3)調度器配置(Scheduler Configuration):
- 持續時間(秒):如果選擇了調度程序復選框,控制測試執行的持續時間,以秒為單位。
- 啟動延遲(秒):如果選擇了調度程序復選框,控制測試在多久后啟動執行,以秒為單位。
可以在調度器中配置持續時間(秒)和啟動延遲(秒)來控制每個線程組的持續時間以及啟動后的秒數。當測試開始時,JMeter將在啟動線程組的線程之前等待啟動延遲(秒),然后運行配置的持續時間(秒)。
例:如果使用了10個線程,並且啟動周期為100秒,那么JMeter將花費100秒來啟動和運行所有10個線程。每個線程將在上一個線程開始后10(100/10)秒開始。如果有30個線程,啟動周期為120秒,則每個連續線程將延遲4秒啟動。
參考: