JMeter執行緒組編輯區揭祕

自動化程式碼美學發表於2021-04-23

執行緒組編輯區如下:

在這裡插入圖片描述

有點複雜,但是慢慢看下來,還是比較容易理解。

Name

帶有業務含義的名字。

Comments

執行緒組的備註說明。

Action to be taken after a Sampler error

取樣器報錯後執行動作。有5個選項:Continue,Start Next Thread Loop,Stop Thread,Stop Test,Stop Test Now。為了搞懂這幾個選項,我畫了張時序圖進行說明:

在這裡插入圖片描述

  • 圖中有一個執行緒,在最左邊。
  • 右邊有兩個迭代:迭代1和迭代2。
  • 每個迭代有兩個請求,第一個請求失敗。
  • Stop Thread是直接結束執行緒,沒有畫出來,一般不會設定此項,不然會導致執行執行緒越來越少,最後負載不夠,對伺服器的壓力不夠,測試結果不具參考性。
  • 剩餘4個選項用紅色字型標註了出來。

執行緒在第一個迭代的第一個請求失敗了。Continue表示繼續執行第二個請求,再執行第二個迭代;Start Next Thread Loop表示忽略第二個請求,跳到第二個迭代執行;Stop Test表示把當前迭代的第二個請求執行完後,停止測試;Stop Test Now表示從第一個請求失敗這裡直接結束測試。

JMeter預設選項是Continue,保證足夠的併發壓力。我們在大量使用者併發時,伺服器偶爾響應錯誤是正常現象,比如伺服器由於效能問題500,此時出錯我們正好要記錄下來,作為有效能問題的依據。

如果想減少關聯請求報錯,可以選擇Start Next Thread Loop。

Thread Properties

Number of Threads (users)

執行緒組的執行緒數量。

Ramp-up period (seconds)

啟動時間,執行緒組在多少秒內啟動完所有執行緒。

比如設定執行緒數為50,設定啟動時間為10秒,那麼每秒就會啟動50 / 10 = 5個執行緒;如果設定為0秒,則50個執行緒會立刻啟動;如果設定為100秒,就會每隔100 / 50 = 2秒啟動1個執行緒。

Ramp-up period如何設定?

以下是5個執行緒依次從啟動到執行到退出的示意圖:

在這裡插入圖片描述

JMeter執行緒組產生的併發壓力,實際上是紅色框起來的那部分,在這個時間段才是所有執行緒在併發著執行。

先從Ramp-up period設定最小和最大來分析這個問題:

  1. 假設有3000個執行緒,只迭代1次,如果設定為0秒,那麼測試一開始就會產生3000個併發請求,說不定直接把伺服器壓崩了,還沒開始就結束了。
  2. 假設有10個執行緒,只迭代1次,如果設定為100秒,那麼每隔10秒啟動1個執行緒,很可能前一個執行緒跑完了,下一個執行緒還沒啟起來,某一時刻最多隻有1個執行緒在跑,沒有併發壓力。

接著看看該設定成多少?這個答案我找了很多資料,都沒有明確的說法。結合實踐經驗來談的話,既不能太小,也不能太大,可以根據業務場景、硬體配置、系統資源來進行設定。

Loop Count

迭代次數。

  • 填寫數字,指定迭代次數。
  • 勾選Infinite,無限迭代,一直執行到測試停止或異常崩潰。

Same user on each iteration

每個迭代都用相同的user(執行緒)。

預設這個選項是勾選的。因為銷燬和建立執行緒本身就會佔用資源,可能會影響效能測試結果。

什麼時候去掉勾選呢?比如登入,加了HTTP Cookie管理器以後,單個執行緒多次迭代(注意不是多個執行緒哦)登入用的都是相同的Cookie。去掉勾選後,同時在HTTP Cookie管理器選擇清除舊Cookie:

在這裡插入圖片描述

那麼每次迭代就能用不同Cookie了。

Delay Thread creation until needed

保持預設就好。跟JVM建立執行緒時機有關,實際運用勾不勾選都不影響測試結果。

Specify Thread lifetime

Duration

持續時間,單位秒。

前面的Loop Count勾選了Infinite,Duration才會生效。

Startup delay

啟動延遲,單位秒。

延遲到多少秒後再啟動執行緒。

小結

本文對執行緒組編輯區進行了揭祕,看似複雜,實則簡單,問題在於實際使用過程中如何結合業務來設定,這需要實踐經驗不斷積累才能找到答案。需要注意的是,如果Ramp-up period設定不當,有可能100個執行緒只能產生1個併發請求。

參考資料:

《全棧效能測試修煉寶典JMeter實戰》

https://www.cnblogs.com/hjhsysu/p/9189897.html

相關文章