性能場景設計
一、常用的線程組
線程數:並發用戶數
ramp-up:啟動時間(線程數的準備時間),在這個時間點結束時,所有用戶都準備好
循環次數:填寫具體的數值—->每個線程組,運行多少遍;
勾選永遠—->一直執行,一般和「調度器」一起使用
調度器:持續時間,一直執行,持續執行多少秒
二、安裝插件
安裝插件:jmeter plugins manager
怎麼看有沒有安裝成功呢?在jmeter中,打開選項,找到最下面的
當你點進去後,可以進行更新
install plugins:已經安裝的插件、available plugins:可以安裝的插件、upgrades:可以升級的插件
勾選這個,右下角申請安裝(Apply Changes and Restart JMeter)一下即可;安裝下載重啟(jmeter會自動重啟,不需要我們手動去關閉再重啟)
重啟之後,可以看到線程組有這些東西可以用的,監聽器也增加了一些
三、負載測試
負載測試:逐步增加用戶並發數,有兩種場景;階梯場景和波浪式場景
3.1 階梯場景
測試計劃–>添加–>線程–>Stepping Thread Group
那麼,我們怎麼來看這張圖呢?
This group will start:最大線程數100個
First,wait for:初始化等待時間0秒
Then start:初始化線程數0個
初始化後,每次增加10個線程,花費5秒,增加後持續運行30秒
Next,add:每次增加10個線程
Threads every:持續運行30秒
Using ramp-up:花費5秒
Then hold load for:達到最大線程數後,運行60秒
運行60秒後,每次減少5個線程,花費1秒
Finally,stop:每次減少5個線程
Threads every:花費1秒
通過添加監聽器來跑一例子看看結果圖並分析
Transactions per Second:TPS每秒請求事物數
Response Times Over Time:隨着時間變化的響應時間
Active Threads Over Time:活躍的線程數
現在通過設置這樣的數據,來看看監聽器返回的結果是哪些?先看響應圖如下:
說明在60秒的時候,響應時間達到了1.5秒;那麼此時去活躍的線程圖中找信息
再去看看tps的數值,也可以看出個大概是多少
Tips:為什麼要1.5秒,因為在我們測試行業,1.5秒是用戶所能接受的最慢的時間,相當於一根標尺一樣
500ms滿意、1500ms可以接受、 超過1500ms無法接受 ,這是針對接口的響應時間此種情況
3.2波浪式場景
測試計劃–>添加–>線程–>Ultimate Thread Group
Start Threads Count:最大啟動線程數100個
Initial Delay,sec:初始化等待0秒
Start up Time,sec:增加到最大線程數,花費30秒
Hold Load For,sec:保持最大線程數,運行60秒
Shutdown Time:減少到0個線程,花費10秒
適用場景:訂餐系統,用餐時間點時,系統訪問量很大,用餐時間為波浪的波峰
拿一個例子來跑一下,看看結果並分析:
響應時間圖:
活躍線程圖:
所能承受的最大數值是20,說明拐點大概就是20
Tps圖:
不管是哪種類型的結果分析,幾乎是同樣的分析方法:
分析的方法總結:第一步,先去響應時間圖中,找出1.5秒對應的縱坐標運行時間
第二步,再去活躍線程圖中找出縱坐標運行時間對應的橫坐標,就差不多可以確定拐點區間是多少
第三步,去tps圖上找出大概的tps數值是多少,取中間平均出現的大概的數值
性能場景的設計原則:緩起步,快結束
一個完整的腳本 包括線程組,取樣器,監聽器