?線程組即用戶組费尽,是一般進行性能測試時的用戶資源池,也是任何一個測試計劃的執(zhí)行開始點帅矗。
jmeter線程組目前分為基本型和引入型。
1.基本型線程組包括:Thread Group布朦、setUp Thread Group和tearDown Thread Group三種。2.引入型線程組包括:bzm - Arrivals Thread Group 昼窗、bzm - Concurrency Threadp Group是趴、bzm - Free_From Arrivals Thread Group、jp@gc - Stepping Thread Group澄惊、jp@gc - Ultimate Thread Group等五種右遭。
一、基本型
Thread Group 線程組
日常測試中最常用的線程組缤削,它用于模擬用戶數(shù)窘哈,每一個線程相當于一個虛擬的用戶。
該線程組的操作頁面大概分為3部分如下圖所示:
N0.1:在取樣器出現(xiàn)錯誤后要執(zhí)行的動作(?意思如果采樣器出現(xiàn)錯誤亭敢,將按照此設置執(zhí)行)
?continue(繼續(xù)):將繼續(xù)執(zhí)行接下來的操作滚婉;
start next thread loop: 忽略錯誤,執(zhí)行下一次循環(huán)帅刀;
stop thread :停止當前線程(不在進行此線程的任何操作)让腹;
stop test: 等等當前采樣器執(zhí)行結果后, 停止整個測試扣溺;
?stop test now: 立即停止所有測試骇窍;
NO.2:Thread Properties 線程屬性
number of threads : 并發(fā)線程,模擬多少個虛擬用戶操作
ramp_up period : 啟動上面指定線程數(shù)耗費時間锥余,即在設置時間內(nèi)線程數(shù)達到設定的線程數(shù)
?loop count : 循環(huán)次數(shù)腹纳,如果不設定具體的值,就會一直循環(huán)執(zhí)行下去驱犹,直到手動停止
?delay thread creation until need 直到需要時延遲線程的創(chuàng)建
?sceduler :調(diào)度器
NO.3:Scheduler Configuration 調(diào)度器設置?
duration(seconds):壓測持續(xù)時間
start delay (seconds): 啟動延遲時間嘲恍,即點擊啟動后多久之后才正式開始測試
setUp Thread Group
用于執(zhí)行測試之前的初始化操作,日常測試中可根據(jù)具體需要進行引用雄驹,基本配置同 Thread Group
tearDown Thread Group
用于執(zhí)行測試結束之后的回收工作佃牛, 日常測試中可根據(jù)具體需要進行引用, 基本配置同?Thread Group
二医舆、引入型
Concurrency Thread Group & Stepping Thread Group
二者皆用于階梯式加壓測試俘侠,但由于Stepping Thread Group已不再被官方推薦使用了,所以僅對Concurrency Thread Group進行簡單介紹蔬将。
target concurrency:目標并發(fā)數(shù)
ramp up time(min):加速時間
ramp-up steps count:加速步驟計數(shù)
hold target rate time(min):保持目標費率時間
thread iterations limit:線程迭代次數(shù)限制
log threads status into file:將線程狀態(tài)記錄到文件
如上圖:1000個線程組爷速,加速時間為10秒鐘,10個加速步驟娃胆,保持目標費率20秒鐘遍希。
測試場景解析:10個加速步驟,每步10個線程組里烦,10秒鐘/10步=1凿蒜,每步1秒鐘禁谦;即每1秒加載100線程組,直到達到1000個废封,達到100個線程組之后州泊,所有這些線程組將繼續(xù)運行20秒鐘。
Ultimate Thread Group
該線程組與Concurrency Thread Group相類似漂洋,可以設置多個線程組的結合遥皂,各個時刻的運行結果都是幾個線程組的疊加。
start threads count:目標并發(fā)數(shù)
initial delay:啟動延遲時間
startup time:啟動目標線程所需時間
hold load for:以目標線程并發(fā)持續(xù)加壓時間
shutdown time:結束當前線程時間
Arrivals?Thread Group &?Free-Form Arrivals?Thread Group
通過該線程組達到控制請求數(shù)的目的刽漂。
target rate:目標費率演训,每秒鐘多少個請求數(shù)
ramp up time(sec):達到目標費率需要的時間
ramp-up steps count:達到目標費率需要多少步
hold target rate time(sec):保持目標費率時間
thread iterations limit:線程迭代次數(shù)限制
log threads status into file:將線程狀態(tài)記錄到文件
concurrency limit:最大并發(fā)數(shù)限制
如上圖:目標費率為1000個線程組,加速時間為10秒鐘贝咙,10個加速步驟样悟,保持目標費率20秒鐘。
測試場景解析:10個加速步驟庭猩,每步10個線程組窟她,10秒鐘/10步=1,每步1秒鐘蔼水;即每1秒加載100線程組震糖,直到達到1000個,達到100個線程組之后趴腋,所有這些線程組將繼續(xù)運行20秒鐘吊说。前十秒鐘按照設置不斷增加費率,請求數(shù)為(100+200+300+400+500+600+700+800+900+1000)*2=11000個于样;后十秒鐘疏叨,按照每秒100個費率計算潘靖,請求數(shù)為100*10=1000個穿剖;共計12000個請求數(shù)。