線程組元件是任何一個測試計劃的開始點。在一個測試計劃中的全部元件都必須在某個線程下。全部的任務都是基於線程組數據庫
一種特殊類型的ThreadGroup,用於在執行常規線程組以前執行一些必要的操做。在「setup thread group 」下的線程行爲與普通線程組徹底相同。不一樣的是執行順序:它會在普通線程組執行以前被觸發。併發
應用場景舉例:oop
A、測試數據庫操做功能時,用於執行打開數據庫鏈接的操做。測試
B、測試用戶購物功能時,用於執行用戶的註冊、登陸等操做。spa
一種特殊類型的ThreadGroup,用於在執行常規線程組完成後執行一些必要的操做。在「teardown thread group 」下的線程行爲與普通線程組徹底相同。不一樣的是執行順序:它會在普通線程組執行以後被觸發。線程
應用場景舉例:cdn
A、測試數據庫操做功能時,用於執行關閉數據庫鏈接的操做。blog
B、測試用戶購物功能時,用於執行用戶的退出等操做。element
注意:默認狀況下,若是測試按預期完成,則TearDown線程組將不會運行。若是你想要運行它,則須要從Test Plan界面中選中複選框「Run tearDown Thread Groups after shutdown of main threads」。get
這個就是咱們一般使用的線程。一個線程組能夠看作一個虛擬用戶組,線程組中的每一個線程均可以理解爲一個虛擬用戶。多個用戶同時去執行相同的一批次任務。每一個線程之間都是隔離的,互不影響的。一個線程的執行過程當中,操做的變量,不會影響其餘線程的變量值。
例如線程組中包含查詢設備和查詢服務商2個請求,若查詢設備請求失敗,查詢服務商請求會繼續執行。
例一:線程組中包含查詢設備和查詢服務商2個請求且循環次數非1,若查詢設備請求失敗,查詢服務商請求將再也不執行,等下一次從新迭代,從查詢設備開始執行。
例二:測試計劃中包含線程組1和線程組2,線程組1的循環次數是1,那麼線程組1執行出錯時,會直接啓動線程組2
如測試計劃設置了【獨立運行每一個線程組(例如在一個組運行結束後啓動另外一個)】
則線程組1中的某個請求失敗了,線程組2中的請求不會被執行
此選項和Ramp-up Period設置配合使用,若是勾選此項,則全部線程會在須要的時候啓動,即會在Ramp-up Period(in seconds)到時間後啓動全部線程,此項做用在於,若是說線程運行時間小於咱們設置的Ramp-up Period(in seconds),則會形成一種狀況就是在Ramp-up Period(in seconds)結束以前部分線程已經跑完了,這樣就會致使活動線程數小於咱們設置的線程數,也就意味着咱們設置的N個併發的場景並未徹底起效。可是若是勾選了此項,則線程會根據Ramp-up Period(in seconds)設置來建立,可是不會啓動,直到最後一個線程建立好後一塊兒啓動(這樣就會很好的模擬到咱們的N個併發數了)
若是單個線程的運行時間長於咱們設置的Ramp-up Period(in seconds)時間,則此項也不用勾選。
舉例說明:如過設置線程數爲10,Ramp-up Period(in seconds)時間爲100,則若是不勾選此項則這次測試會每隔10s建立並啓動一個線程,那麼100s後會有1-10個線程在運行;可是若是勾選此項,那麼線程組會每隔10s建立一個線程但並不啓動sample,而是會等待100s後全部10個線程都建立好以後同時啓動sample。
持續時間(秒):整個測試計劃持續的時間。(優先於後面的結束時間選項)。注意這個時間設置不要設置的比 Ramp-up Period(in seconds)小,若是勾選了循環次數中的永遠,那麼測試同樣會在此持續時間到達後結束。
啓動延遲(秒):測試計劃啓動後,會被延遲啓動,時間爲選項填入的時間。(優先於後面的啓動時間選項)
啓動時間:整個測試計劃將於此處填寫的時間點啓動
結束時間:整個測試計劃將於此處填寫的時間點結束
若是不想當即執行執行,能夠經過調度器控制測試執行的開始時間和結束時間
筆記:同一個線程組裏的多個請求,默認是從上到下執行;同一個測試計劃裏的線程組,沒有前後執行順序(隨機)(除非勾選了獨立運行每一個線程組)