點擊鏈接加入QQ群 522720170(免費公開課、視頻應(yīng)有盡有):https://jq.qq.com/?_wv=1027&k=5C08ATe
線程組元件是任何一個測試計劃的開始點傀蚌。在一個測試計劃中的所有元件都必須在某個線程下散罕。所有的任務(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:
默認情況下羽莺,如果測試按預(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:
默認情況下壮锻,測試開始的時候琐旁,所有線程就被創(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é)束時間呛哟,如果達到叠荠,停止運行;否則測試繼續(xù)運行直到達到了重復(fù)限制扫责。