什麼是壓力測試(Stress Testing)?

 壓力測試(Stress Testing),顧名思義,就是在「極端或超出正常使用情境」下,測試一個系統、組織或機制是否還能正常運作、維持穩定,或至少可預期地失效

它的核心精神只有一句話:

👉 不是測「平常好不好」,而是測「最糟的時候會發生什麼事」


為什麼壓力測試會出現在各行各業?

因為所有行業都有三個共通風險:

  1. 需求暴增

  2. 資源受限

  3. 錯誤不可避免

不同產業只是「被測的對象」不一樣。

各行各業中的壓力測試代表什麼?

行業 壓力測試在測什麼
金融業 在金融危機、利率劇烈波動或大量違約發生時, 銀行或金融機構的資本是否足夠,是否能承受市場衝擊而不倒閉。
製造業 生產設備在長時間滿載或高負荷運轉下, 是否會出現故障、品質下降或產線停擺的情況。
航空業 飛機在極端天氣、零件故障或突發狀況下, 是否仍能維持飛行安全與基本操作能力。
醫療產業 醫院在疫情爆發或大量傷患同時湧入時, 是否有足夠的人力、設備與流程來應對醫療需求。
科技業 系統在流量暴增、資源耗盡或異常行為發生時, 是否仍能穩定運作,或至少能以可預期的方式失效。

你會發現:
👉 壓力測試 = 風險管理的一種具體化手段


壓力測試在科技業是做什麼?

在科技業,「壓力測試」通常指的是:

刻意把系統推到接近或超過設計上限,觀察它的行為

常見的測試對象

  • Web / API 服務

  • 資料庫

  • 分散式系統

  • 雲端基礎架構

  • 金流 / 核心交易系統

  • 身分驗證與登入機制


科技業常見的壓力測試項目

1️⃣ 流量壓力(Load / Spike Test)

  • 同時 1,000 / 10,000 / 100,000 人請求

  • 秒級流量暴增(例如搶票、秒殺)

2️⃣ 資源耗盡測試

  • CPU / Memory / Disk / Connection 用滿

  • Thread / Connection Pool 耗盡

3️⃣ 長時間穩定性測試(Soak Test)

  • 連續跑 24~72 小時

  • 是否有 memory leak、效能劣化

4️⃣ 失效與復原測試(Failover)

  • 節點掛掉

  • 網路中斷

  • DB 主從切換

5️⃣ 極端錯誤輸入

  • 非預期參數

  • 超長字串

  • 非法請求


做壓力測試的優點與缺點

✅ 優點

✔ 提前發現「會出事的地方」

  • 比用戶先發現系統瓶頸

  • 比駭客先發現弱點

✔ 有數據,而不是感覺

  • 不再是「我覺得系統撐得住」

  • 而是「在 5 萬 QPS 時開始失敗」

✔ 幫助容量規劃(Capacity Planning)

  • 要不要擴機?

  • 擴多少才夠?


⚠ 缺點與風險

❌ 成本高

  • 測試環境、雲端資源都要錢

  • 模擬真實流量不容易

❌ 測試 ≠ 真實世界

  • 真實使用者行為比測試複雜

  • 有些問題只有「真的出事」才會出現

❌ 做不好反而有風險

  • 在正式環境亂跑壓測可能把系統打掛

  • 影響真實用戶


為什麼壓力測試會跟「資安」有關?

這一點很多人會忽略,但其實非常關鍵

因為:

👉 很多資安事件,本質上就是一種「惡意壓力測試」


壓力測試與資安的關聯

1️⃣ DDoS 本身就是極端壓力

  • 海量請求

  • 刻意耗盡系統資源

👉 如果你沒做過壓力測試
= 你不知道系統在攻擊下會怎麼死


2️⃣ 壓力下的錯誤,常導致資安漏洞

在高壓狀態下,系統可能出現:

  • 驗證流程被跳過

  • Timeout 導致邏輯錯誤

  • Race condition

  • 錯誤訊息外洩內部資訊

👉 很多漏洞只會在「快撐不住時」出現


3️⃣ 資安防護本身也需要壓力測試

例如:

  • WAF 能撐多少流量?

  • Rate limit 是否有效?

  • Login protection 在暴力嘗試下是否失效?


實際例子:電商搶購 + 資安問題

情境說明

某電商在雙 11 搶購活動:

  • 正常流量:2,000 QPS

  • 活動瞬間:暴增到 50,000 QPS


❌ 沒做壓力測試的結果

  1. API response timeout

  2. Session 狀態錯亂

  3. 驗證流程被跳過

  4. 攻擊者發現:

    • 可以繞過驗證直接下單

    • 或重放請求導致超賣

👉 效能問題,最後變成資安事件


✅ 有做壓力測試的情況

  • 提前發現 DB 是瓶頸

  • 加入:

    • Rate limiting

    • Queue / Async 處理

    • 熔斷(Circuit Breaker)

  • 在高壓下仍能:

    • 正確驗證

    • 有序拒絕請求


壓力測試到底在測什麼?

壓力測試不是為了證明系統很強而是為了知道它什麼時候會崩、怎麼崩

對科技業來說,它同時關係到:

  • 系統穩定性

  • 使用者體驗

  • 商業損失

  • 資安風險

留言

熱門文章