您好,登錄后才能下訂單哦!
線程組元件是任何一個測試計劃的開始點。在一個測試計劃中的所有元件都必須在某個線程下。所有的任務(wù)都是基于線程組。
一、Threads (Users)線程 用戶
上圖可以看到,jmeter有三個添加線程組的選項,名字不一樣, 但是創(chuàng)建之后,其界面是完全一樣的。
1、 setup thread group
一種特殊類型的ThreadGroup,用于在執(zhí)行常規(guī)線程組之前執(zhí)行一些必要的操作。在“setup thread group ”下提到的線程行為與普通線程組完全相同。不同的是執(zhí)行順序---它會在普通線程組執(zhí)行之前被觸發(fā)。
應(yīng)用場景舉例:
A、測試數(shù)據(jù)庫操作功能時,用于執(zhí)行打開數(shù)據(jù)庫連接的操作。
B、測試用戶購物功能時,用于執(zhí)行用戶的注冊、登錄等操作。
2、teardown thread group
一種特殊類型的ThreadGroup,用于在執(zhí)行常規(guī)線程組完成后執(zhí)行一些必要的操作。在“teardown thread group ”下提到的線程行為與普通線程組完全相同。不同的是執(zhí)行順序---它會在普通線程組執(zhí)行之后被觸發(fā)。
應(yīng)用場景舉例:
A、測試數(shù)據(jù)庫操作功能時,用于執(zhí)行關(guān)閉數(shù)據(jù)庫連接的操作。
B、測試用戶購物功能時,用于執(zhí)行用戶的退出等操作。
tips:
默認(rèn)情況下,如果測試按預(yù)期完成,則TearDown線程組將不會運行。如果你想要運行它,則需要從Test Plan界面中選中復(fù)選框“Run tearDown Thread Groups after shutdown of main threads”。
-----------------------------------------------------------
可能你還是不太理解他們與普通的線程組有什么不同。但是如果你用過junit,想必你應(yīng)該對setup ,teardown這兩個字眼不陌生。
如果你熟悉loadrunner,那你應(yīng)該知道loadrunner的腳本中除了 action里是真正的腳本核心內(nèi)容,還有進行初始化操作的init腳本和測試完畢后對應(yīng)的end腳本塊。那么這里setup thread group 和 teardown thread group 就是分別指這兩部分。
3、 thread group(線程組)
這個就是我們通常使用的線程。通俗的講,一個線程組可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。多個用戶同時去執(zhí)行相同的一批次任務(wù)。每個線程之間都是隔離的,互不影響的。一個線程的執(zhí)行過程中,操作的變量,不會影響其他線程的變量值。
二、線程組基本設(shè)置
在線程組界面中可以設(shè)置以下數(shù)據(jù),進行控制線程組:
1、取樣器錯誤后要執(zhí)行的動作:
繼續(xù):忽略錯誤,繼續(xù)執(zhí)行
Start Next Thread Loop: 忽略錯誤,線程當(dāng)前循環(huán)終止,執(zhí)行下一個循環(huán)。
停止線程:當(dāng)前線程停止執(zhí)行,不影響其他線程正常執(zhí)行。
停止測試:整個測試會在所有當(dāng)前正在執(zhí)行的線程執(zhí)行完畢后停止
Stop test now:整個測試會立即停止執(zhí)行,當(dāng)前正在執(zhí)行的取樣器可能會被中斷。
這幾個配置項控制了“當(dāng)遇到錯誤的時候測試的執(zhí)行策略”是否會繼續(xù)執(zhí)行。
2、設(shè)置線程數(shù):
線程數(shù)也就是并發(fā)數(shù),每個線程將會完全獨立的運行測試計劃,互不干擾。多個線程用于模仿對服務(wù)器的并發(fā)訪問。
3、設(shè)置ramp-up period:
ramp-up period用于設(shè)置啟動所有線程所需要的時間。如果選擇了10個線程,并且ramp-up period是100秒,那么JMeter將使用100秒使10個線程啟動并運行。每個線程將在前一個線程啟動后10(100/10)秒后啟動。
當(dāng)這個值設(shè)置的很小、線程數(shù)又設(shè)置的很大時,在剛開始執(zhí)行時會對服務(wù)器產(chǎn)生很大的負荷。
下圖的線程配置中,5個線程,5秒啟動時間,每個線程執(zhí)行兩次循環(huán)。那么每個線程之間啟動延遲為 1 秒。
4、設(shè)置循環(huán)次數(shù):
該項設(shè)置線程組在結(jié)束前每個線程循環(huán)的次數(shù),如果次數(shù)設(shè)置為1,那么JMeter在停止前只執(zhí)行測試計劃一次。
5、Delay Thread creation until needed:
默認(rèn)情況下,測試開始的時候,所有線程就被創(chuàng)建完了。如果勾選了此選項,那么線程只會在合適的需要用到的時候創(chuàng)建。
三、線程組調(diào)度器設(shè)置
調(diào)度器配置可以更靈活的控制線程組執(zhí)行的時間
1、持續(xù)時間(秒):
控制測試執(zhí)行的持續(xù)時間,以秒為單位。
2、啟動延遲(秒):
控制測試在多久后啟動執(zhí)行,以秒為單位。
3、啟動時間:
控制測試在某個時間點啟動。但這個配置會被“啟動延遲”配置覆蓋。
4、結(jié)束時間:
控制測試執(zhí)行的結(jié)束時間。但這個配置會被“持續(xù)時間”配置覆蓋。
如果不想立即執(zhí)行執(zhí)行,可以通過調(diào)度器控制測試執(zhí)行的開始時間和結(jié)束時間。
當(dāng)測試開始時,如果設(shè)置了調(diào)度器,JMeter將等待直到到了開始時間。在每個周期結(jié)束,JMeter將會檢查是否到達結(jié)束時間,如果達到,停止運行;否則測試?yán)^續(xù)運行直到達到了重復(fù)限制。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。