JMeter壓力測試報告 名詞解釋說明

當系統開發完成後,客戶或主管常會詢問 API 的承載能力?
如果隨意回覆「應該能承擔 100 個同時存取」這樣的答案,顯得不夠專業
作為工程師,我們應該提供具體的科學數據
因此,通常會先撰寫壓測腳本,使用壓力測試工具來模擬真實環境,並將測試結果整理成可供決策的報告數據

這裡使用 JMeter 進行壓測,但報告中的一些參數並不直觀
因此我整理了一些關鍵數據的解釋,作為參考
也方便日後使用時檢視這些數據的意義,幫助更好地分析系統的表現

測試環境

  • API URL: http://xxxx/API/GetProduct
  • 執行時間: 2021-06-25 18:00:00
  • 操作系統: Windows Server 2019 Standard
  • CPU: Intel Xeon E5-2670 @ 2.60GHz (8 cores)
  • 內存: 16 GB
  • 磁碟: 500 GB SSD
  • 網絡: 中華電信 100M/40M 固定IP

測試資料

  • 用戶: 1人
  • 商品數量: 1000個

測試腳本

  • 執行緒: 1個
  • 啟動延遲: 0秒
  • 迴圈持續時間: 10分鐘
  • 迴圈延遲: 1秒

測試腳本流程

  • 1個用戶輪流呼叫1000種商品, 呼叫API取得商品資訊
  • 延遲1秒, Loop…

預期結果

  • 吞吐量目標:期望 API 能在每秒至少處理 10 個請求
  • 響應時間目標:每次請求的平均響應時間應控制在 2000 毫秒以下
  • 錯誤率:希望錯誤率保持在 0%

彙整報告

  • 總請求次數(#Samples): 6127次
  • 平均響應時間(Average): 2744(ms)
  • 最小響應時間(Min): 177(ms)
  • 最大響應時間(Max): 39776(ms)
  • 標準偏移量(Std.Dev): 4400.29
  • 錯誤率(Error %): 0.00%
  • 每秒請求吞吐量(Throughtput): 10.1/sec
  • 每秒收到流量(Received KB/sec): 3.90
  • 每秒發送流量(Send KB/sec): 2.46
  • 平均資料流量(Avg.Bytes): 394.5
  • #Samples: 本次測試共發出了多少次請求
  • Average: Request 的平均響應時間
  • Median: 中位數 (50% 用戶的響應時間)
  • 90% Line: 90% 用戶的響應時間
  • Min: 最小響應時間
  • Max: 最大響應時間
  • Error%: 本次測試中出現錯誤的請求的數量/請求的總數
  • Throughput: 吞吐量,默認情況下表示每秒完成的請求數(Request per Second),伺服器能夠接受的最大速率
  • KB/Sec: 每秒從伺服器接收到的數據量
  • ThreadGroup 線程組: 代表一定數量的並發用戶,它可以用來模擬並發用戶發送請求
  • Ramp-up period: 指每個請求發生的總時間間隔,單位是秒

結果分析

  • 平均響應時間:測試結果顯示平均響應時間為 2744 毫秒,超過預期目標的 2000 毫秒,顯示系統在高並發下存在性能瓶頸,可能需要優化伺服器端的處理邏輯
  • 吞吐量:每秒 10.1 個請求達到預期,顯示系統能承擔較高的負載
  • 最大響應時間:最大響應時間達到 39776 毫秒,需深入分析高延遲原因,可能是伺服器資源被耗盡或外部 API 影響
訂閱
通知
guest
0 留言
預約回饋
查看所有留言