常見測試類型


測試

  • 類型

測試類型

smoke test:冒煙測試.在最小負載下,系統可以正常運行.
load test:負載測試.主要是根據每秒並發的用戶或請求來評估系統的性能.
stress test,spike testing(壓力測試,穿透測試):評估系統極限和在極端條件的穩定性.
soak test:浸泡測試.一段時間內系統的穩定性和性能.

  • 測試方式

windows:

./k6.exe run ./scripts/smoke-test-demo.js

linux:

k6 run ./scripts/smoke-test-demo.js

smoke test

冒煙測試是一個在最小負載下的普通負載測試.

價值:

驗證測試腳本沒有錯誤;    
驗證系統在最小負載小沒有拋異常;    

測試腳本示例:

smoke-test-demo

load testing

負載測試是一種性能測試,用於確定系統在正常條件和峰值條件下的行為.通常用於確保服務可以很好滿足大量用戶同一時間訪問.

價值:

評估在典型和峰值負載下系統的當前性能;    
當進行系統(代碼,基礎設施)調整后,確保依舊滿足性能標准.

load-test-demo

要求99%的請求在1.5秒內響應.thresholds 用於確保系統滿足你設置的性能標准.

load test 圖

整個負載流程是逐步增加系統負載,持續一段時間后,負載又逐漸降低的過程.

常見的負載性能標准:

    99%請求在5秒內完成;    
    95%請求應該在1秒內完成;    
    99%用戶可以第一次就成功登陸

壓力測試

壓力測試是一組不同類型的負載測試.用於評估系統在高負載情況下的可用性和穩定性.

價值:

確認極端條件系統的情況;    
確認系統最大的容量;    
確認系統的臨界點和失效模型;    
確認壓力測試后,系統能否自恢復;    

壓力測試是系統臨界點評估的測試,核心是判定系統的臨界點而不是摧毀系統.

stress-test-demo

穿透測試

穿透測試是壓力測試的一個變種.不同的是,壓力測試是逐步的進行壓力的增減,而穿透測試講究的是迅速的進行極端壓力請求.

價值:

確認迅速的極端訪問下的系統行為;    
確認迅速的極端訪問后系統能否自恢復;    

穿透測試是對大型突發情形的預演.系統在這種情形的反應可以分為四種:

優秀: 在突發請求下,系統運行正常.響應時間在高低訪問量下相似;    
好: 響應時間變慢.但是系統未發生錯誤.所有請求都被處理;    
一般: 突發請求下有異常發送.但是請求正常后,服務自恢復;    
差: 系統崩潰,無法自恢復;

stick-test-demo

浸泡測試

浸泡測試:關注系統長時間運行的可靠性.用於揭示系統長時間處理壓力下而產生的性能和可靠性問題.

可靠性問題典型的有:bugs,內存泄漏,存儲配額不足,配置不正確,基礎設施故障等
性能問題典型的有:與數據庫交互不協調,內存泄漏,資源泄漏,大數據量

浸泡測試可以在幾小時內模擬幾天的訪問量;

價值:

驗證系統不存在導致中斷或運行一段時候重啟的bug或內存泄漏問題;    
驗證服務重啟后不丟失請求;    
發現偶發的競爭條件相關的bugs;    
確認數據庫不會耗盡分配的存儲空間后停止;    
確認日志不會耗盡分配的磁盤空間;    
確認你依賴的其他服務不會大訪問量下不會掛掉;    

soak-test-demo

參考資料

k6 test-types
完整示例地址


免責聲明!

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



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