jmeter測試某個QPS下的響應時間-設置QPS限制

本次性能測試的需求中提到測試的目的是「瞭解博客的首頁在負載達到20 QPS時的響應時間」,所以須要控制向博客首頁發送請求的負載爲20QPS。java

  一種可行的方法是逐步調整測試計劃中的線程計算的數量以及爲取樣器(Sampler)添加定時器(Timer),以使HTTP取樣器發出的請求的QPS保持在20個左右。但這種方法耗時耗力,須要通過屢次嘗試才能達到;另外一方法,徹底經過設置定時器來控制QPS,一旦取樣器的響應時間發生改變(網絡環境發生改變),就須要從新調整定時器的等待時間。服務器

  Jmeter提供了一個很是有用的定時器,稱爲Constant Throughput Timer (常數吞吐量定時器),該定時器能夠方便地控制給定的取樣器發送請求的吞吐量。網絡

  右鍵點擊fnng.cnblogs.com ,彈出菜單(添加--->定時器--->Constant Throughput Timer)選擇Constant Throughput Timer工具

Constant Throughput Timer 的主要屬性介紹:性能

名稱 :定時器的名稱測試

Target throughput(in samples per minute):目標吞吐量。注意這裏是每分鐘發送的請求數,所以,對應測試需求中所要求的20 QPS ,這裏的值應該是1200 。線程

Calculate Throughput based on :有5個選項,分別是:blog

  This thread only :控制每一個線程的吞吐量,選擇這種模式時,總的吞吐量爲設置的 target Throughput 乘以矣線程的數量。get

  All active threads : 設置的target Throughput 將分配在每一個活躍線程上,每一個活躍線程在上一次運行結束後等待合理的時間後再次運行。活躍線程指同一時刻同時運行的線程。博客

  All active threads in current thread group :設置的target Throughput將分配在當前線程組的每個活躍線程上,當測試計劃中只有一個線程組時,該選項和All active threads選項的效果徹底相同。

  All active threads (shared ):與All active threads 的選項基本相同,惟一的區別是,每一個活躍線程都會在全部活躍線程上一次運行結束後等待合理的時間後再次運行。

  All cative threads in current thread group (shared ):與All active threads in current thread group 基本相同,惟一的區別是,每一個活躍線程都會在全部活躍線程的上一次運行結束後等待合理的時間後再次運行。

 

  如上圖,該元件僅做用於fnng.cnblogs.com ,設置定時器的Target throughput爲1200/分鐘(20 QPS),設置Calculate Throughput based on 的值爲All active threads 。

  固然,Constant Throughput Timer只有在線程組中的線程產生足夠多的request 的狀況下才有意義,所以,即便設置了Constant Throughput Timer的值,也可能因爲線程組中的線程數量不夠,或是定時器設置不合理等緣由致使整體的QPS不能達到預期目標。

 

 

添加監聽器(Listener)


 

   腳本的主要部分設置完成後,須要經過某種方式得到性能測試中的測試結果,在本例中,咱們關心的是請求的響應時間。

  Jmeter 中使用監聽器元件收集取樣器記錄的數據並以可視化的方式來呈現。Jmeter有各類不一樣的監聽器類型,由於上HTTP請求,咱們可在添加聚合報告,更爲直觀的查看測試結果。

  添加聚合報告,右鍵點擊線程組,在彈的菜單(添加--->監聽器--->聚合報告)中選擇聚合報告。

 

 

運行腳本


 

  添加完成聚合報告後,咱們來運行腳本,稍後介紹聚合報告的參數。

  在運腳本以前,咱們來查看一下,各個元件的參數設置:

--------------------------------------------------------------- 

線程組:

線程數:20

準備時長: 10

循環次數:10

---------------------------------------------------------------  

HTTP請求:

名稱:fnng.cnblogs.com。

服務器名稱或IP :fnng.cnblogs.com

端口號:80 

Implementation : java 

協議: http

方法: GET

路徑:/

---------------------------------------------------------------  

常數吞吐量定時器:

Target throughput(in samples per minute):1200.0

Calculate Throughput based on :All active threads

---------------------------------------------------------------  

點擊工具欄上的運行按鈕,或者點擊菜單欄「 運行--->啓動 」 或者使用快捷鍵ctrl+r 來運行程序。

 

 

聚合報告分析


 

查看聚合報告的運行結果:

 

 OK! 到此一次完整的性能測試結束,若是你從中有所收穫,推薦一記~!

相關文章
相關標籤/搜索