Jmeter提供了一個(gè)非常有用的定時(shí)器,稱為Constant Throughput Timer (常數(shù)吞吐量定時(shí)器),該定時(shí)器可以方便地控制給定的取樣器發(fā)送請(qǐng)求的吞吐量。
右鍵點(diǎn)擊fnng.cnblogs.com ,彈出菜單(添加--->定時(shí)器--->Constant Throughput Timer)選擇Constant Throughput Timer
Constant Throughput Timer 的主要屬性介紹:
名稱:定時(shí)器的名稱
Target throughput(in samples per minute):目標(biāo)吞吐量。注意這里是每分鐘發(fā)送的請(qǐng)求數(shù),因此,對(duì)應(yīng)測(cè)試需求中所要求的20 QPS ,這里的值應(yīng)該是1200 。
Calculate Throughput based on:有5個(gè)選項(xiàng),分別是:
This thread only:控制每個(gè)線程的吞吐量,選擇這種模式時(shí),總的吞吐量為設(shè)置的 target Throughput 乘以矣線程的數(shù)量。
All active threads:設(shè)置的target Throughput 將分配在每個(gè)活躍線程上,每個(gè)活躍線程在上一次運(yùn)行結(jié)束后等待合理的時(shí)間后再次運(yùn)行;钴S線程指同一時(shí)刻同時(shí)運(yùn)行的線程。
All active threads in current thread group:設(shè)置的target Throughput將分配在當(dāng)前線程組的每一個(gè)活躍線程上,當(dāng)測(cè)試計(jì)劃中只有一個(gè)線程組時(shí),該選項(xiàng)和All active threads選項(xiàng)的效果完全相同。
All active threads (shared ):與All active threads 的選項(xiàng)基本相同,的區(qū)別是,每個(gè)活躍線程都會(huì)在所有活躍線程上一次運(yùn)行結(jié)束后等待合理的時(shí)間后再次運(yùn)行。
All cative threads in current thread group (shared ):與All active threads in current thread group 基本相同,的區(qū)別是,每個(gè)活躍線程都會(huì)在所有活躍線程的上一次運(yùn)行結(jié)束后等待合理的時(shí)間后再次運(yùn)行。
如上圖,該元件僅作用于fnng.cnblogs.com ,設(shè)置定時(shí)器的Target throughput為1200/分鐘(20 QPS),設(shè)置Calculate Throughput based on 的值為All active threads 。
當(dāng)然,Constant Throughput Timer只有在線程組中的線程產(chǎn)生足夠多的request 的情況下才有意義,因此,即使設(shè)置了Constant Throughput Timer的值,也可能由于線程組中的線程數(shù)量不夠,或是定時(shí)器設(shè)置不合理等原因?qū)е驴傮w的QPS不能達(dá)到預(yù)期目標(biāo)。
添加監(jiān)聽(tīng)器(Listener)
--------------------------------------------------------------------------------
腳本的主要部分設(shè)置完成后,需要通過(guò)某種方式獲得性能測(cè)試中的測(cè)試結(jié)果,在本例中,我們關(guān)心的是請(qǐng)求的響應(yīng)時(shí)間。
Jmeter 中使用監(jiān)聽(tīng)器元件收集取樣器記錄的數(shù)據(jù)并以可視化的方式來(lái)呈現(xiàn)。Jmeter有各種不同的監(jiān)聽(tīng)器類型,因?yàn)樯螲TTP請(qǐng)求,我們可在添加聚合報(bào)告,更為直觀的查看測(cè)試結(jié)果。
添加聚合報(bào)告,右鍵點(diǎn)擊線程組,在彈的菜單(添加--->監(jiān)聽(tīng)器--->聚合報(bào)告)中選擇聚合報(bào)告。