『動善時』JMeter基礎 — 11、JMeter線程組詳解:Threads(Users)


線程(用戶)就是我們通常要添加運行的線程。通俗的講,一個線程組可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。

線程組中包含的線程數量在測試執行過程中是不會發生改變的。每個線程完全獨立的運行測試計划,互不干擾,多個線程用於模仿對服務器的並發訪問。

所有控制器和采樣器必須在線程組下。其他元件(例如偵聽器)可以直接放置在測試計划下,在這種情況下,它們將應用於所有線程組。

1、添加線程組

“測試計划”右鍵 —> “添加” —> “線程(用戶)”,有三個添加線程組的選項。如下圖:

image

注意:如果你還安裝了其他的組件或者插件的話,還會有一些其他的線程選項。

說明

  • 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線程組三個線程組的內容界面是一樣的,都如下圖:

image

說明:

(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秒啟動。

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM