您好,登錄后才能下訂單哦!
線程組元件是任何一個測試計劃的開始點。在一個測試計劃中的所有元件都必須在某個線程下。所有的任務都是基于線程組。
一、Threads (Users)線程 用戶
上圖可以看到,jmeter有三個添加線程組的選項,名字不一樣, 但是創建之后,其界面是完全一樣的。
1、 setup thread group
一種特殊類型的ThreadGroup,用于在執行常規線程組之前執行一些必要的操作。在“setup thread group ”下提到的線程行為與普通線程組完全相同。不同的是執行順序---它會在普通線程組執行之前被觸發。
應用場景舉例:
A、測試數據庫操作功能時,用于執行打開數據庫連接的操作。
B、測試用戶購物功能時,用于執行用戶的注冊、登錄等操作。
2、teardown thread group
一種特殊類型的ThreadGroup,用于在執行常規線程組完成后執行一些必要的操作。在“teardown thread group ”下提到的線程行為與普通線程組完全相同。不同的是執行順序---它會在普通線程組執行之后被觸發。
應用場景舉例:
A、測試數據庫操作功能時,用于執行關閉數據庫連接的操作。
B、測試用戶購物功能時,用于執行用戶的退出等操作。
tips:
默認情況下,如果測試按預期完成,則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 就是分別指這兩部分。
3、 thread group(線程組)
這個就是我們通常使用的線程。通俗的講,一個線程組可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。多個用戶同時去執行相同的一批次任務。每個線程之間都是隔離的,互不影響的。一個線程的執行過程中,操作的變量,不會影響其他線程的變量值。
二、線程組基本設置
在線程組界面中可以設置以下數據,進行控制線程組:
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)秒后啟動。
當這個值設置的很小、線程數又設置的很大時,在剛開始執行時會對服務器產生很大的負荷。
下圖的線程配置中,5個線程,5秒啟動時間,每個線程執行兩次循環。那么每個線程之間啟動延遲為 1 秒。
4、設置循環次數:
該項設置線程組在結束前每個線程循環的次數,如果次數設置為1,那么JMeter在停止前只執行測試計劃一次。
5、Delay Thread creation until needed:
默認情況下,測試開始的時候,所有線程就被創建完了。如果勾選了此選項,那么線程只會在合適的需要用到的時候創建。
三、線程組調度器設置
調度器配置可以更靈活的控制線程組執行的時間
1、持續時間(秒):
控制測試執行的持續時間,以秒為單位。
2、啟動延遲(秒):
控制測試在多久后啟動執行,以秒為單位。
3、啟動時間:
控制測試在某個時間點啟動。但這個配置會被“啟動延遲”配置覆蓋。
4、結束時間:
控制測試執行的結束時間。但這個配置會被“持續時間”配置覆蓋。
如果不想立即執行執行,可以通過調度器控制測試執行的開始時間和結束時間。
當測試開始時,如果設置了調度器,JMeter將等待直到到了開始時間。在每個周期結束,JMeter將會檢查是否到達結束時間,如果達到,停止運行;否則測試繼續運行直到達到了重復限制。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。