小程序H5接口測試整理(JMeter)


前提(需安裝的插件):

  1. JMeter Manager
  2. Custom Thread Groups
  3. Basic Graphs

術語解釋

1.線程屬性的解讀

①線程數:代表模擬的用戶數量

注意線程數不宜一開始設置的太大,然后根據線程數設置啟動時間100以內1-2s,1000個2-3秒。

設置1個線程數,循環次數設置多次,這種不算是性能測試;需要設置多線程數,模擬多用戶向服務器發起請求,才算性能測試。

②Ramp-Up時間:代表的是線程數准備時間(設定的時間內,線程數向服務器發送請求,例如:設置30個線程數,Ramp-Up時間設置為2,那么2秒結束后30個線程數已經向服務器發送請求,並不等於每秒啟動15個線程數,有可能前面一秒啟動n個線程數,第二秒啟動30-n個線程數,總之2秒結束設置的線程數都會發送完請求),那么設置這個時間有什么意義呢?舉例說明吧,比如設置了1000個線程數,啟動時間設置為1秒,那么服務器在這1秒鍾承受的壓力會很大,有可能服務器還沒時間分配足夠的資源導致報錯(這種報錯原因是因為場景設置的原因導致的);如果設置時間增加一點,那么請求在這段時間內持續發送,服務器有緩沖時間,服務器壓力會小一些,就不會出現抖動的現象。

③循環次數:代表的是線程組需要向接口發送多少次重復的請求,如果選擇“永遠”,那么線程數會一直發送請求,直到強行停止才會停止stop(有可能后面的發送的請求會報錯);不過一般“永遠”會和調度器一起使用,在調度器中設置持續時間,到了時間循環就會停止(這種情況因為不是強行停止,就不會出現報錯的情況)

測試插件安裝

插件下載地址:https://jmeter-plugins.org/install/Install/ ,如圖

image-20210716101836283

插件下載到本地后放在jmeter對應的安裝目錄lib/ext 如圖

image-20210716101942766

安裝后重啟jmeter后,打開在選項中可以看到對應的插件如圖:

image-20210716102101609

圖2:插件安裝界面:

image-20210716102158135

在此界面中可以選擇需要安裝的插件:Custom Thread Groups和Basic Graphs

然后在測試計划-->線程組中可以看到出現的新線程組,如圖

image-20210716102331636

測試場景設計和插件使用

基准測試

一般情況下,基准測試也是單用戶測試,測試環境確定以后,對業務模型中的重要業務做單獨的測試,獲取單用戶運行時的各項性能指標,為多用戶並發測試和綜合場景測試等性能分析提供參考依據,這里設計一個Thread Group 線程組線程的測試,如圖

image-20210716104256706

這里設計了立即啟動2個線程(用戶)查看對應的接口結果信息:

image-20210716104325182

負載測試

負載測試:逐步增加用戶並發數,有兩種場景;階梯場景和波浪式場景

階梯場景

測試計划-->添加-->線程-->Stepping Thread Group(說明:Concurrency Thread Group和Stepping Thread Group都可用於階梯式加壓測試但是由於Stepping Thread Group已經不再被官方推薦使用了,我們對Concurrency Thread Group進行簡單介紹),如圖

image-20210716105449468

解釋:

target concurrency:目標並發數

ramp up time(min):加速時間

ramp-up steps count:加速步驟計數

hold target rate time(min):保持目標費率時間

thread iterations limit:線程迭代次數限制

log threads status into file:將線程狀態記錄到文件

以上,以圖形的方式展示了線程加壓的過程。

例如:

50個線程組,加速時間為5分鍾,10個加速步驟,保持目標費率3分鍾:

10個加速步驟,每步5個線程組;

5分鍾/10步=0.5,每步0.5分鍾;即每1分鍾加載10個線程組,直到達到50個;

達到50個線程組之后,所有這些線程組將繼續運行,加壓3分鍾。

通過添加監聽器來跑一例子看看結果圖並分析,如圖

Transactions per Second:TPS每秒請求事物數

Response Times Over Time:隨着時間變化的響應時間

Active Threads Over Time:活躍的線程數

image-20210716114949441

波浪式場景

測試計划-->添加-->線程-->Ultimate Thread Group

image-20210716111305540

解釋:

Start Threads Count:最大啟動線程數50個
Initial Delay,sec:初始化等待0秒
Start up Time,sec:增加到最大線程數,花費30秒
Hold Load For,sec:保持最大線程數,運行60秒
Shutdown Time:減少到0個線程,花費10秒

適用場景:訂餐系統,用餐時間點時,系統訪問量很大,用餐時間為波浪的波峰

其他幾種測試插件場景說明
Arrivals Thread Group & Free-Form Arrivals Thread Group

跟Concurrency Thread Group線程組功能作用大同小異

target rate:目標費率,每秒鍾多少個請求數

ramp up time(sec):達到目標費率需要的時間

ramp-up steps count:達到目標費率需要多少步

hold target rate time(sec):保持目標費率時間

thread iterations limit:線程迭代次數限制,如果我們只需運行每個用戶一次以模擬用戶的實際行為,則設置為1;設置為空,表示每個用戶將運行不確定的迭代,直到調度結束。

log threads status into file:將線程狀態記錄到文件

concurrency limit:最大並發數限制

舉例:

目標費率為100,加速時間為10秒鍾,5個加速步驟,保持目標費率10秒鍾:

5個加速步驟,每步20增加個費率;

10s/5步=2,每步2秒鍾;即每2秒鍾加載20個費率,直到達到100;

達到100個費率之后,按照這個標准進行加壓10秒鍾;

以上,前十秒鍾按照設置不斷增加費率,請求數為(20+40+60+80+100)*2=600個;后十秒鍾,按照每秒100個費率計算,請求數為100*10=1000個;共計1600個請求數。
————————————————


測試場景設計說明

參考如圖:

image-20210716114352930

參考信息:

  1. pluto果凍
  2. Jmeter的線程組
  3. 場景設計
  4. 線程組使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM