1.1 線程組服務器
線程組是一系列線程的集合,每個線程表明着一個正在使用應用程序的用戶。在 jmeter 中,每一個線程意味着模擬一個真實用戶向服務器發起請求。併發
在 jmeter 中,線程組組件運行用戶設置線程數量、初始化方式等等配置。測試
例如,若是你設置線程數爲 100,那麼 jmeter 將建立並模擬測試 100 個用戶請求到服務器端。線程
以下圖所示:3d
添加線程組的步驟:blog
測試計劃->右鍵->添加->Threads(Users)->線程組,添加一個新的線程組。作用域
【線程組】: 測試裏每一個任務都要線程去處理,全部任務必須在線程組下面建立。域名
【線程數】: 設置發送請求的用戶數。it
【在採樣器錯誤後要執行的動做】: 表示,當一個測試計劃裏有多個線程組或者一個線程組裏有多個採樣器,當一個採樣器執行出錯後,接下來的處理,若是不是有特別的場景要求,默認是繼續就能夠。io
【Ramp-Up Period(in seconds)】: 建立完全部線程的時間,防止對服務器有太大的負載。
若是選擇了10個線程,而且ramp-up period是10秒,那麼JMeter將使用10秒加載10個線程,也就是平均1秒加載一個虛擬用戶。
啓動並運行。每一個線程將在前一個線程啓動後1秒後啓動。若是將此設置爲0,
則表示10個用戶同時併發,也就是全部線程在統一時間啓動。Ramp-up須要足夠長的時間來避免在開始測試時產生太大的負荷,而且有足夠短的時間使最後一個線程在第一個線程結束以前運行。
【循環次數】: 線程組的每一個線程數請求的重複次數。若是次數設置爲1,那麼JMeter只執行測試計劃一次,若是設置成永遠,線程組裏的線程會一直在執行。
【調度器】: 調度器是用來執行一些特殊場景,勾選了調度器,就能夠設置線程運行的【持續時間】和【啓動延遲】項。
【持續時間】: 測試計劃持續時間。
【啓動延遲】: 測試計劃延遲啓動時間。
Jmeter有三個線程組分類:Thread Group、setUp Thread Group、tearDown Thread Group,以下圖所示:
(1)、Thread Group ( 線程組 )
這個就是咱們一般添加運行的線程。通俗的講一個線程組,能夠看作一個虛擬用戶組,線程組中的每一個線程均可以理解爲一個虛擬用戶。
(2)、setUp Thread Group
一種特殊類型的 ThreadGroup 的,可用於執行預測試操做。這些線程的行爲徹底像一個正常的線程組元件。不一樣的是,這些類型的線程執行測試前進行按期線程組的執行,相似LoadRunner 的 init,測試開始時進行初始化的工做。
(3)、tearDown Thread Group
一種特殊類型的 ThreadGroup 的,可用於執行測試後動做。這些線程的行爲徹底像一個正常的線程組元件。不一樣的是,這些類型的線程執行測試結束後執行按期的線程組,相似LoadRunnner 的 end ,測試結束時進行回收工做。
線程組執行順序:
① setUp Thread Group
② 線程組
③ TearDown Thread Group
案例一:
案例目的:驗證 3 種線程組的執行順序。
案例步驟:
一、在測試計劃中添加一個「線程組」。
二、給「線程組」添加一個「Debug Sampler」採樣器,更名爲t1。
三、在測試計劃中在添加一個tearDown Thread Group。
四、給「tearDown Thread Group」添加一個「Debug Sampler」採樣器,更名爲t2。
五、在測試計劃中在添加一個 setUp Thread Group 。
六、給「setUp Thread Group」添加一個「Debug Sampler」採樣器,更名爲t3。
七、在測試計劃中在添加一個監聽器(察看結果樹:用來查看運行結果)。
八、若是運行的順序爲從上到下,那運行的結果應該爲:t1->t2->t3,可是實際運行的結果爲以下圖所示:
這個案例說明:3種類別的線程組在同一做用域名範圍內執行順序爲:setUp Thread Group ->線程組-> tearDown Thread Group
案例二:
案例目的:驗證 3 種線程組的執行順序。
案例步驟:
一、在測試計劃中添加一個「線程組」,設置線程組的線程數爲 5,設置 5 個虛擬用戶併發。
二、給「線程組」添加一個「Debug Sampler」採樣器,更名爲t1。
三、在測試計劃中在添加一個tearDown Thread Group,線程數默認爲 1,不改變。
四、給「tearDown Thread Group」添加一個「Debug Sampler」採樣器,更名爲t2。
五、在測試計劃中在添加一個 setUp Thread Group,線程數默認爲 1,不改變。
六、給「setUp Thread Group」添加一個「Debug Sampler」採樣器,更名爲t3。
七、在測試計劃中在添加一個監聽器(察看結果樹:用來查看運行結果)。
八、運行 jmeter 測試計劃,結果以下圖:
這個案例說明:setUp Thread Group 是在一個 jmeter 計劃開始的時候執行,tearDown Thread Group 是在一個 jmeter 計劃結束的時候執行,無論中間有多少個線程組。
案例三:
案例目的:驗證 3 種線程組的執行順序。
案例步驟:
一、在測試計劃中添加一個「線程組」,設置線程組的線程數爲 5,設置 5 個虛擬用戶併發。
二、給「線程組」添加一個「Debug Sampler」採樣器,更名爲t1。
三、在測試計劃中在添加一個tearDown Thread Group,設置線程組的線程數爲 5,設置 5 個虛擬用戶併發。
四、給「tearDown Thread Group」添加一個「Debug Sampler」採樣器,更名爲t2。
五、在測試計劃中在添加一個 setUp Thread Group,設置線程組的線程數爲 5,設置 5 個虛擬用戶併發。
六、給「setUp Thread Group」添加一個「Debug Sampler」採樣器,更名爲t3。
七、在測試計劃中在添加一個監聽器(察看結果樹:用來查看運行結果)。
八、運行 jmeter 測試計劃,結果以下圖:
這個案例說明:線程組的執行次數跟線程數有關。