測試開發之效能篇-效能測試設計

陳琦發表於2021-11-03

很多朋友接觸效能測試是從工具開始的,比如流行的JMeter、Loadrunner等。熟悉一個測試工具,有助於對效能測試的過程、方法和機制有個直觀的理解。

我們知道,無論是什麼型別的測試,其目標不外乎兩個,一是為了證明系統滿足當初的定義(Requirement);二是儘可能早、儘可能多地發現潛在的問題(Defect)。工具是為解決特定問題而服務的,其使用是相對簡單和可控的,在效能測試中,方案設計則顯得更為關鍵。

通常,我們在做效能測試方案設計時,會從以下幾個角度去思考。需要知道的是,它們之間並不是割裂的,會有交叉,界限也並不那麼明顯。

編號名稱描述
1效能指標系統在常規的工作負荷下,各項效能指標是否滿足當初界定的要求。比如響應時間不能超過多少等。
2資料容量可預期的未來時間內,資料量的大幅增長可能引發的效能瓶頸。
3能力評估單位資源、時間內,系統可處理的業務訪問量。可用於測試(模擬)環境到生產(實際)環境的軟硬體資源按比估算。
4壓力測試驗證系統在超正常負載情況下的效能表現,發現哪裡最容易產生問題。可據此評估系統效能短板和不同型別軟體硬體資源的配比。
5疲勞測試長時間施加一定量的負載,驗證系統是否會出現諸如記憶體洩漏、網路擁堵等長效才會激發的問題。
6強度測試驗證系統在高強度、資源極度匱乏的情況下,依然可以正常工作,未發生崩潰、重啟,處理能力急劇下降,以及資料不一致等嚴重問題。

講到測試場景的設計,就離不開業務上的分析,可嘗試回答以下幾個問題:

  1. 系統的使用者規模有多大?
  2. 在可預期的未來,資料量會到達多少?
  3. 各業務子系統、功能模組,分別需承受多大訪問量?
  4. 在特定的日期或時間,是否存在某些業務的峰值?
  5. 按照現有的架構設計和資源配比,可能的瓶頸在哪裡?

在效能測試設計的過程中,需逐步明確和落實以下幾個方面的內容:

  1. 確定測試系統中的註冊使用者和同時線上使用者數;
  2. 通過註冊和同時線上使用者數,推匯出併發虛擬使用者數;
  3. 不能確定的,三個使用者數之間可先按十分之一的比率來演算;
  4. 選擇測試的介面,確定各自所需支援的每秒訪問量;
  5. 設計3個以上綜合業務場景,包括其中各介面請求量的佔比;
  6. 針對資源消耗大的業務,如檔案讀寫、網路傳輸、AI訓練等,重點進行測試;
  7. 根據經驗預測容易出問題的地方,單獨設計測試場景;
  8. 確定各場景下的思考時間、執行時長、加壓策略等測試引數配置;
  9. 綜合考慮服務環境因素,如硬體、網路、(微)服務例項數、是否有負載均衡等;
  10. 確定測試工具和環境,如加壓機器數量、測試工具配置等。

最後,確定測試中需要度量的效能指標,可包括:

  • 吞吐量(Throughput)
  • 每秒查詢率(QPS)
  • 響應時間(RT),包括平均、最大、最小、正態分佈的值。
  • 請求失敗率、超時率、業務處理錯誤率
  • 系統指標,如CPU、記憶體、網路等

專題目錄

相關文章