1. 程式人生 > >【JMeter】關於執行緒組 - 4.0 版本

【JMeter】關於執行緒組 - 4.0 版本

文章目錄

本文內容基於 JMeter 4.0 版本,不同版本細節方面可能會不一致。

今天回顧了之前寫的文章,排版真是不忍直視呀,我都看不下去了,內容上也有一些過時的地方,但是畢竟是我一個字一個字碼出來的,刪了還有點捨不得,所以再重新寫一下吧 ~~

相關文章:
【JMeter】關於測試計劃 - 4.0 版本

JMeter-詳解jmeter執行緒組

1、執行緒組

執行緒組元件是任何一個測試計劃的開始點。在一個測試計劃中的所有元件都必須在某個執行緒下。所有的任務都是基於執行緒組。

在 Threads (Users)中包含三種不同的執行緒組,雖然名字不一樣,但是建立之後,其介面是完全一樣的。

2、setup thread group

  • 這是一種特殊型別的 ThreadGroup,用於在執行常規執行緒組之前執行一些必要的操作。

  • setup thread group 下提到的執行緒行為 與普通執行緒組完全相同。不同的是執行順序–它會在普通執行緒組執行之前被觸發。

  • 應用場景舉例:

    • A、測試資料庫操作功能時,用於執行開啟資料庫連線的操作。

    • B、測試使用者購物功能時,用於執行使用者的註冊、登入等操作。

3、teardown thread group

  • 這也是一種特殊型別的 ThreadGroup,用於在執行常規執行緒組完成後執行一些必要的操作。

  • teardown thread group 下提到的執行緒行為 與普通執行緒組完全相同。不同的是執行順序–它會在普通執行緒組執行之後被觸發。

  • 應用場景舉例:

    • A、測試資料庫操作功能時,用於執行關閉資料庫連線的操作。

    • B、測試使用者購物功能時,用於執行使用者的退出等操作。

tips:

預設情況下,如果測試按預期完成,則TearDown執行緒組將不會執行。

如果你想要執行它,則需要從Test Plan介面中選中複選框“Run tearDown Thread Groups after shutdown of main threads”。

4、thread group (執行緒組)

  • 這個就是我們通常使用的執行緒組。

  • 通俗的講,一個執行緒組可以看做一個虛擬使用者組,執行緒組中的每個執行緒都可以理解為一個虛擬使用者。

  • 多個使用者同時去執行相同的一批次任務。每個執行緒之間都是隔離的,互不影響的

  • 一個執行緒的執行過程中,操作的變數,不會影響其他執行緒的變數值

5、執行緒組基本設定

線上程組介面中可以設定以下資料,進行控制執行緒組:

在這裡插入圖片描述

5.1 取樣器錯誤後要執行的動作

當遇到錯誤的時候測試的執行策略有如下幾種:

  • 繼續:忽略錯誤,繼續執行 (預設選項,一般不用動)

  • Start Next Thread Loop: 忽略錯誤,執行緒當前迴圈終止,執行下一個迴圈。

  • 停止執行緒:當前執行緒停止執行,不影響其他執行緒正常執行。

  • 停止測試:整個測試會在所有當前正在執行的執行緒執行完畢後停止。

  • Stop test now:整個測試會立即停止執行,當前正在執行的取樣器可能會被中斷。

5.2 設定執行緒數

  • 執行緒數也就是併發數,每個執行緒將會完全獨立的執行測試計劃,互不干擾。

  • 使用多執行緒模仿對伺服器的併發訪問。

5.3 設定 Ramp-Up Period

  • 用於設定啟動所有執行緒所需要的時間。

  • 如果選擇了10個執行緒,並且 Ramp-Up Period 是100秒,那麼 JMeter 將在 100 秒內平均啟動 10 個執行緒,執行緒之間延遲 10(100/10)秒後啟動。

  • 如果 Ramp-Up Period 設定為 0,則 JMeter 會立即啟動所有執行緒。

  • 當這個值設定的很小或設為 0、執行緒數又設定的很大時,在剛開始執行時會對伺服器產生較大的負荷。

5.4 設定迴圈次數

  • 設定每個執行緒迴圈的次數。

  • 一個執行緒組傳送的總請求數 = 執行緒數 * 迴圈次數

  • 如果想要一直迴圈,勾選 Forever

5.5 Delay Thread creation until needed:

  • 預設情況下,測試開始的時候,所有執行緒就被建立完了。

  • 如果勾選了此選項,那麼執行緒只會在合適的需要用到的時候建立。

  • 目前我還沒找到這個選項具體有什麼用,基本上可以忽略。

6、執行緒組排程器設定

排程器配置可以更精確的控制執行緒組執行的時間段。

  • 預設排程器配置是置灰的,需要勾選排程器啟用。

  • 當測試開始時,如果設定了排程器,JMeter將等待直到到了開始時間。

  • 在每個週期結束,JMeter將會檢查是否到達結束時間,如果達到,停止執行;否則測試繼續執行直到達到了重複限制。

6.1 持續時間(秒)

控制測試執行的持續時間,以秒為單位,方便進行穩定性壓測。

6.2 啟動延遲(秒):

控制測試在多久後開始執行,以秒為單位。


以下 啟動時間結束時間 在 4.0 版本之後已經去掉了。

6.3 啟動時間

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

6.4 結束時間

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