一、線程組分類
線程組元件是任何一個測試計划的開始點。在一個測試計划中的所有元件都必須在某個線程下。所有的任務都是基於線程組。
上圖可以看到,jmeter有三個添加線程組的選項,名字不一樣, 但是創建之后,其界面是完全一樣的。
1、setup thread group
一種特殊類型的ThreadGroup的,可用於執行預測試操作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試前進行定期線程組的執行。
應用場景舉例:
- 測試數據庫操作功能時,用於執行打開數據庫連接的操作;
- 測試用戶購物功能時,用於執行用戶的注冊、登錄等操作;
2、teardown thread group
一種特殊類型的ThreadGroup的,可用於執行測試后動作。這些線程的行為完全像一個正常的線程組元件。不同的是,這些類型的線程執行測試結束后執行定期的線程組。
應用場景舉例:
- 測試數據庫操作功能時,用於執行關閉數據庫連接的操作;
- 測試用戶購物功能時,用於執行用戶的退出等操作;
注意:
默認情況下,如果測試按預期完成,則TearDown線程組將不會運行。 如果你想要運行它,則需要從Test Plan界面中選中復選框“Run tearDown Thread Groups after”。
3、thread group(線程組)
這個就是我們通常添加運行的線程。通俗的講一個線程組,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數量在測試執行過程中是不會發生改變的。
二、線程組配置
線程組元件是任何測試計划的起點。一個測試計划的所有元件必須在一個線程組下。由名字可以看出,線程組元件控制JMeter運行測試時使用的線程數。
1、取樣器錯誤后要執行的動作:
- 繼續:忽略錯誤,繼續執行
- Start Next Thread Loop: 忽略錯誤,線程當前循環終止,執行下一個循環。
- 停止線程:當前線程停止執行,不影響其他線程正常執行。
- 停止測試:整個測試會在所有當前正在執行的線程執行完畢后停止
- Stop test now:整個測試會立即停止執行,當前正在執行的取樣器可能會被中斷。
這幾個配置項控制了“當遇到錯誤的時候測試的執行策略”是否會繼續執行。
2、設置線程數:
線程數也就是並發數,每個線程將會完全獨立的運行測試計划,互不干擾。多個線程用於模仿對服務器的並發訪問。
3、設置ramp-up period:
ramp-up period用於設置啟動所有線程所需要的時間。
如果選擇了10個線程,並且ramp-up period是100秒,那么JMeter將使用100秒使10個線程啟動並運行。每個線程將在前一個線程啟動后10(100/10)秒后啟動。
當這個值設置的很小、線程數又設置的很大時,在剛開始執行時會對服務器產生很大的負荷。
4、設置循環次數:
該項設置線程組在結束前每個線程循環的次數,如果次數設置為1,那么JMeter在停止前只執行測試計划一次。
5、Delay Thread creation until needed:
默認情況下,測試開始的時候,所有線程就被創建完了。如果勾選了此選項,那么線程只會在合適的需要用到的時候創建。
6、線程組調度器:
調度器配置可以更靈活的控制線程組執行的時間。
1、持續時間(秒):控制測試執行的持續時間,以秒為單位。
2、啟動延遲(秒):控制測試在多久后啟動執行,以秒為單位。
3、啟動時間:控制測試在某個時間點啟動。但這個配置會被“啟動延遲”配置覆蓋。
4、結束時間:控制測試執行的結束時間。但這個配置會被“持續時間”配置覆蓋。
如果不想立即執行執行,可以通過調度器控制測試執行的開始時間和結束時間。
當測試開始時,如果設置了調度器,JMeter將等待直到到了開始時間。在每個周期結束,JMeter將會檢查是否到達結束時間,如果達到,停止運行;否則測試繼續運行直到達到了重復限制。
三、聚合報告數據分析
- Label -請求對應的name屬性值。
- Samples - 具有相同標號的樣本數,總的發出請求數。
- Average - 請求的平均響應時間。
- Median -50%的樣本都沒有超過這個時間。這個值是指把所有數據按由小到大將其排列,就是排列在第50%的值。
- 90% Line - 90%的樣本都沒有超過這個時間。這個值是指把所有數據按由小到大將其排列,就是排列在第90%的值。
- 95% Line - 95%的樣本都沒有超過這個時間。這個值是指把所有數據按由小到大將其排列,就是排列在第95%的值。
- 99% Line - 99%的樣本都沒有超過這個時間。這個值是指把所有數據按由小到大將其排列,就是排列在第99%的值。
- Min -最小響應時間。
- Max -最大響應時間。
- Error % -本次測試中,有錯誤請求的百分比。
- Throughput -吞吐量是以每秒/分鍾/小時的請求量來度量的。這里表示每秒完成的請求數。
- Received KB/sec -收到的千字節每秒的吞吐量測試。
- Sent KB/sec -發送的千字節每秒的吞吐量測試。
引用: