效能測試入門指南:從負載測試到壓力測試的完整教學
效能測試入門完整指南 - 涵蓋負載測試、壓力測試、浸泡測試,介紹 JMeter、k6、Locust 三大工具實戰用法,從零學會找出系統瓶頸確保上線穩定
最後更新:2026-03-16
本文提供效能測試入門指引,實際工具選擇與測試策略需依專案需求調整。
目錄
1. 為什麼需要效能測試
功能正確不代表系統能扛住真實流量。電商大促時網站掛掉、活動頁面開很慢、API 回應逾時,這些都是效能問題。效能測試的目標就是在上線前找出系統的極限與瓶頸,避免在真實用戶面前翻車。 常見的效能問題包括:資料庫查詢太慢、記憶體洩漏、連線池耗盡、快取命中率低、第三方 API 回應慢拖累整體效能。
2. 效能測試的四種類型
模擬預期的正常與尖峰流量,驗證系統是否能在目標負載下正常運作。例如:系統預期同時有 1000 位用戶,測試 1000 位虛擬用戶的情境。 逐漸增加負載超過系統容量,觀察系統在超載時的行為。重點不在「能不能扛住」,而在「超載時是否優雅降級而非直接崩潰」。 在正常負載下持續運行數小時甚至數天,檢測記憶體洩漏、連線池耗盡等長時間才會出現的問題。 模擬流量突然暴增的場景,例如行銷活動開始瞬間湧入大量用戶。測試系統能否快速擴展並在流量降低後恢復正常。
3. 效能測試的關鍵指標
執行效能測試時,你需要關注這些核心指標:
-
回應時間 (Response Time)
P50(中位數)、P95、P99 分位數。P99 比平均值更能反映真實用戶體驗
-
吞吐量 (Throughput)
每秒處理的請求數 (RPS)。代表系統的處理能力
-
錯誤率 (Error Rate)
失敗請求的比例。負載增加時錯誤率不應急速上升
-
併發用戶數 (Concurrent Users)
同時在線的用戶數量
-
資源使用率
CPU、記憶體、磁碟 I/O、網路頻寬的使用情況
4. 三大效能測試工具比較
Apache 基金會的開源工具,歷史最悠久,社群最大: Grafana Labs 維護的現代效能測試工具,用 JavaScript 寫測試腳本: Python 寫的效能測試框架,用 Python 定義用戶行為:
-
優點
GUI 操作直覺、外掛豐富、支援多種協定(HTTP、FTP、JDBC、SOAP)
-
缺點
Java 寫的比較吃資源、腳本維護成本高、不適合版本控制
-
適合
入門學習、需要 GUI 操作、非工程師背景的 QA
-
優點
腳本用 JS 撰寫易讀易維護、CLI 執行適合 CI/CD、資源消耗低
-
缺點
只支援 HTTP/WebSocket/gRPC、不支援 GUI 錄製
-
適合
現代 Web API 測試、CI/CD 整合、有程式背景的 QA
-
優點
Python 生態系豐富、分散式執行容易、Web UI 即時監控
-
缺點
Python GIL 限制單機效能、需要 Python 知識
-
適合
Python 技術棧團隊、需要複雜用戶行為模擬
5. 效能測試實戰流程
在開始測試前,先與團隊確認效能目標: 效能測試應該在與生產環境盡可能相似的環境中執行。關鍵注意事項: 根據真實用戶行為設計測試場景: 執行測試時同步監控系統資源: 測試完成後,分析結果並產出報告:
-
首頁載入時間必須在 2 秒內(P95)
首頁載入時間必須在 2 秒內(P95)
-
API 回應時間必須在 200ms 內(P99)
API 回應時間必須在 200ms 內(P99)
-
系統必須支撐同時 5000 位用戶
系統必須支撐同時 5000 位用戶
-
錯誤率必須低於 0.1%
錯誤率必須低於 0.1%
-
硬體規格應與生產環境一致(或按比例縮小並換算)
硬體規格應與生產環境一致(或按比例縮小並換算)
-
資料庫要有接近真實量級的測試資料
資料庫要有接近真實量級的測試資料
-
關閉不必要的監控與日誌,避免干擾結果
關閉不必要的監控與日誌,避免干擾結果
-
分析生產環境的流量模式(哪些 API 最常被呼叫)
分析生產環境的流量模式(哪些 API 最常被呼叫)
-
定義用戶行為路徑(瀏覽首頁 → 搜尋 → 查看商品 → 加入購物車)
定義用戶行為路徑(瀏覽首頁 → 搜尋 → 查看商品 → 加入購物車)
-
設定合理的思考時間(用戶在頁面停留的時間)
設定合理的思考時間(用戶在頁面停留的時間)
-
準備測試資料(不同帳號、不同商品)
準備測試資料(不同帳號、不同商品)
-
使用 Grafana + Prometheus 監控伺服器指標
使用 Grafana + Prometheus 監控伺服器指標
-
觀察資料庫慢查詢日誌
觀察資料庫慢查詢日誌
-
記錄應用程式日誌中的錯誤
記錄應用程式日誌中的錯誤
-
注意垃圾回收(GC)頻率與暫停時間
注意垃圾回收(GC)頻率與暫停時間
-
比較實際數據與效能目標的差距
比較實際數據與效能目標的差距
-
找出瓶頸點(是 CPU、記憶體、資料庫還是網路)
找出瓶頸點(是 CPU、記憶體、資料庫還是網路)
-
提出具體的優化建議與優先順序
提出具體的優化建議與優先順序
-
記錄基準數據,作為後續迴歸比較的基礎
記錄基準數據,作為後續迴歸比較的基礎
6. 常見效能瓶頸與解法
以下是效能測試中最常遇到的瓶頸及對應的解決方案:
-
資料庫查詢慢
加索引、優化查詢、使用快取
-
記憶體洩漏
用 profiler 找出洩漏點,檢查未釋放的資源
-
連線池耗盡
調整連線池大小、檢查連線是否正確歸還
-
CPU 滿載
找出 CPU 密集型操作,考慮非同步處理或水平擴展
7. 常見問題 FAQ
建議在功能穩定後、上線前進行完整效能測試。但更好的做法是在 CI/CD 中加入輕量級效能測試(例如 API 回應時間門檻),每次部署都自動檢查效能是否退化。 可以。k6 或 Locust 都能在單機上執行基本的負載測試。重點是先從小規模開始,學會分析結果,再逐漸增加測試複雜度。 效能測試結果有變異是正常的。建議每個場景至少跑 3 次取平均值,排除首次暖機的影響。也要確保測試期間沒有其他程式在競爭資源。
相關懶人包
2026 QA 趨勢:AI 測試、Shift-Left 與職涯新方向
探索 QA 領域的最新趨勢,包含 AI 輔助測試、Shift-Left 策略、以及 QA 工程師的職涯轉型方向。
API 測試入門:用 Postman 和 pytest 打造你的第一個 API 測試
API 測試是現代 QA 必備技能。從 HTTP 基礎概念到實際用 Postman 和 pytest 寫測試,帶你踏出 API 測試的第一步。
Bug 回報的藝術:讓開發者秒懂的 Bug Report 寫法
一份好的 Bug Report 能大幅加速修復速度。分享 Bug 回報的最佳實踐,包含模板、嚴重度分級、以及如何與開發有效溝通。
一般聲明
本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。