QPS | 每秒完成請求的個數 |
---|---|
time | 每一個請求響應完成平均須要時間 |
線程數 = QPS * time;QPS * time就是全部請求完成響應所須要的總時長,若是須要在1s完成全部請求的響應,因此線程數須要等於總時間值。併發
在Jmeter壓測中,一般會認爲1s內100的併發量(即:QPS爲100)
此時沒有添加額外的控制器;上述參數解釋:oop
Number of Threads(users):啓用的併發線程個數
Ramp-Up Period(in seconds):在多少秒內把上述線程啓動起來
Loop Count:控制循環次數性能
說明:
一個常見的誤解,認爲Number of Threads(users)設置爲100,Ramp-Up Reriod(in seconds)設置爲1,就是每秒發起100個請求(錯誤);上述的設置表示在1s內啓動100個線程,以後jmeter便以最大限度的100個併發進行壓測,不能保證1s內只有100個請求。發現:
在1s內,發起的請求都是100+,而且波動仍是比較大的;測試
添加定時器Constant Throughput Timer(常數吞吐量定時器),該定時器能夠方便的控制發送請求的吞吐量。
arget throughput(in samples per minute):設置的值爲6000(因爲單位是一分鐘,若是要求QPS爲100,則該值設置爲60*100=6000)線程
以後咱們再看結果就會發現每秒的線程數已經穩定了, 至於固定請求發送100個請求的配置,>至於固定請求發送100個請求的配置, 若是有人知道, 還但願告知, 這裏不甚感謝。
blog
jmeter提供了不少元件,幫助咱們更好的完成各類場景的性能測試,其中,定時器(timer)是很重要的一個元件,jemter提供了9種定時器,這裏我們只講解Constant Throughput Timer(常數吞吐量定時器)作用域
右鍵Thread Group / Http Request add Timer Constant Throughput Timerget
Target throughput(in samples per minute):目標吞吐量。注意這裏是每分鐘發送的請求數,所以,對應測試需求中所要求的20 QPS ,這裏的值應該是1200 即 20 * 60;
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 基本相同,惟一的區別是,每一個活躍線程都會在全部活躍線程的上一次運行結束後等待合理的時間後再次運行io