性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
性能測試類型包括負載測試,強度測試,容量測試等。
負載測試(Load Testing):負載測試是一種性能測試指數據在超負荷環境中運行,程序是否能夠承擔。負載測試強調的是系統能夠達到的峰值指標。
強度測試(Stress Testing): 強度測試是一種性能測試,他在系統資源特別低的情況下軟件系統運行情況。強度測試強調的是系統在高負載情況下能夠穩定工作,即在極端情況下系統的穩定性。
容量測試(Volume Testing):確定系統可處理同時在線的最大用戶數。
如果想真的做好性能測試,需要學習的東西還是比較多的。簡單列一下吧。
1. 精通性能測試的基本概念,過程,方法論,了解性能工程;
2. 精通1個商業性能測試工具+1個開源性能測試工具,知道工具可以做什么,不可以做什么,以及工具使用中常見的問題和解決思路;
3. 扎實的計算機專業基礎知識,包括計算機組成原理、操作系統、數據庫原理、計算機網絡原理;
4. 熟悉至少1個常用的數據庫產品,例如SQL Server或者 Oracle,能進行一般的數據庫管理操作,熟悉SQL腳本的使用,熟悉常用的數據調優工具和常用的counter;
5. 熟悉至少一個操作系統的原理,Windows或者Linux都可以,熟悉操作系統的體系架構、操作系統的重要基礎概念,以及內存管理、存儲/文件系統、驅動/硬件的管理、網絡協議的實現及構成、性能的監控方法和原理,熟悉常用的counter;
6. 熟悉至少一個web server 產品,例如apache,了解一般的配置和常用的counter;
7. 熟悉至少一個應用服務器產品,例如tomcat,了解一般的配置,熟悉常用的服務器性能監控方法和原理,熟悉常用的counter;
8. 至少熟悉TCP/IP協議,熟悉HTTP協議,至少見過并了解三層、四層交換或者路由器的使用和配置。了解常用的與網絡性能相關的counter;
9. 了解一般的大型企業應用的部署架構和應用架構;
10. 了解知名大型web應用、高并發量、高流量、實時響應要求高的超大規模網站的架構和優化歷程;
11. 熟悉統計學的基礎知識、常用分析方法以及實驗設計方法,了解數學建模相關的知識;
12. 熟悉專屬行業的業務知識和用戶場景,例如電信行業的OSS系統所涉及的業務知識和用戶場景,證券交易系統所涉及的業務知識和用戶場景;
13. 大量的實際性能測試及優化經驗;
14. 積極的參與到各類圈子、社團的討論和交流、分享中。