JMeter-詳解jmeter線程組

線程組元件是任何一個測試計劃的開始點。在一個測試計劃中的全部元件都必須在某個線程下。全部的任務都是基於線程組。

1、Threads (Users)線程 用戶

clipboard.png

上圖能夠看到,jmeter有三個添加線程組的選項,名字不同, 可是建立以後,其界面是徹底同樣的。數據庫

一、 setup thread group  

一種特殊類型的ThreadGroup,用於在執行常規線程組以前執行一些必要的操做。在「setup thread group 」下提到的線程行爲與普通線程組徹底相同。不一樣的是執行順序---它會在普通線程組執行以前被觸發。服務器

應用場景舉例:併發

  • A、測試數據庫操做功能時,用於執行打開數據庫鏈接的操做。
  • B、測試用戶購物功能時,用於執行用戶的註冊、登陸等操做。

 

二、teardown thread group 

一種特殊類型的ThreadGroup,用於在執行常規線程組完成後執行一些必要的操做。在「teardown thread group 」下提到的線程行爲與普通線程組徹底相同。不一樣的是執行順序---它會在普通線程組執行以後被觸發。oop

應用場景舉例:測試

  • A、測試數據庫操做功能時,用於執行關閉數據庫鏈接的操做。
  • B、測試用戶購物功能時,用於執行用戶的退出等操做。

tips:spa

默認狀況下,若是測試按預期完成,則TearDown線程組將不會運行。
若是你想要運行它,則須要從Test Plan界面中選中複選框「Run tearDown Thread Groups after shutdown of main threads」。

可能你仍是不太理解他們與普通的線程組有什麼不一樣。可是若是你用過junit,想必你應該對setup ,teardown這兩個字眼不陌生。線程

若是你熟悉loadrunner,那你應該知道loadrunner的腳本中除了action裏是真正的腳本核心內容,還有進行初始化操做的init腳本和測試完畢後對應的end腳本塊。那麼這裏setup thread group 和 teardown  thread group 就是分別指這兩部分。code

  

三、thread group(線程組)

     這個就是咱們一般使用的線程。通俗的講,一個線程組能夠看作一個虛擬用戶組,線程組中的每一個線程均可以理解爲一個虛擬用戶。多個用戶同時去執行相同的一批次任務。每一個線程之間都是隔離的,互不影響的。一個線程的執行過程當中,操做的變量,不會影響其餘線程的變量值。ip

 

2、線程組基本設置

在線程組界面中能夠設置如下數據,進行控制線程組:it

clipboard.png

一、取樣器錯誤後要執行的動做:

  • 繼續:忽略錯誤,繼續執行
  • Start Next Thread Loop: 忽略錯誤,線程當前循環終止,執行下一個循環。
  • 中止線程:當前線程中止執行,不影響其餘線程正常執行。
  • 中止測試:整個測試會在全部當前正在執行的線程執行完畢後中止
  • Stop test now:整個測試會當即中止執行,當前正在執行的取樣器可能會被中斷。

這幾個配置項控制了「當遇到錯誤的時候測試的執行策略」是否會繼續執行。
 

二、設置線程數:

線程數也就是併發數,每一個線程將會徹底獨立的運行測試計劃,互不干擾。多個線程用於模仿對服務器的併發訪問。

 

三、設置ramp-up period:

ramp-up period用於設置啓動全部線程所須要的時間。
若是選擇了10個線程,而且ramp-up period是100秒,那麼JMeter將使用100秒使10個線程啓動並運行。
每一個線程將在前一個線程啓動後10(100/10)秒後啓動。

當這個值設置的很小、線程數又設置的很大時,在剛開始執行時會對服務器產生很大的負荷。

下圖的線程配置中,5個線程,5秒啓動時間,每一個線程執行兩次循環。那麼每秒會啓動一個線程,每次循環執行一個請求。

clipboard.png

四、設置循環次數:

該項設置線程組在結束前每一個線程循環的次數,若是次數設置爲1,那麼JMeter在中止前只執行測試計劃一次。

五、Delay Thread creation until needed:

 默認狀況下,測試開始的時候,全部線程就被建立完了。若是勾選了此選項,那麼線程只會在合適的須要用到的時候建立。

 

3、線程組調度器設置

調度器配置能夠更靈活的控制線程組執行的時間
一、持續時間(秒):

控制測試執行的持續時間,以秒爲單位。

二、啓動延遲(秒):

控制測試在多久後啓動執行,以秒爲單位。

三、啓動時間:

控制測試在某個時間點啓動。但這個配置會被「啓動延遲」配置覆蓋。

四、結束時間:

控制測試執行的結束時間。但這個配置會被「持續時間」配置覆蓋。

若是不想當即執行執行,能夠經過調度器控制測試執行的開始時間和結束時間。

當測試開始時,若是設置了調度器,JMeter將等待直到到了開始時間。在每一個週期結束,JMeter將會檢查是否到達結束時間,若是達到,中止運行;不然測試繼續運行直到達到了重複限制。

相關文章
相關標籤/搜索