1. 程式人生 > >Jmeter之Constant Timer與constant throughput timer的區別(轉)

Jmeter之Constant Timer與constant throughput timer的區別(轉)

當放置Constant Timer於兩個http請求之間,那麼它代表的含義是:在上一個請求發出至完成後,

開始Contant Timer指定的時間,最後再發出第二個請求.它並不是代表兩個請求之間的傳送間隔時間

圖中的19.701第一個請求發出,經過1.36s時間完成接收,再等待Constant Timer的1s,再開始第二個請求

 

設定QPS限制

本次效能測試的需求中提到測試的目的是“瞭解部落格的首頁在負載達到20 QPS時的響應時間”,因此需要控制向部落格首頁傳送請求的負載為20QPS。

  一種可行的方法是逐步調整測試計劃中的執行緒計算的數量以及為取樣器(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個選項,分別是:

  This thread only :控制每個執行緒的吞吐量,選擇這種模式時,總的吞吐量為設定的 target Throughput 乘以矣執行緒的數量。

  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不能達到預期目標。

 

轉自:https://www.cnblogs.com/111testing/p/6729551.html