常見的性能測試方法:負載測試(Load Testing),壓力測試(Stress Testing),併發測試(Concurrency Testing),基準測試(Bench Testing),穩定性測試(Stability Testing),可恢復性測試(Recovery Testing)等數據庫
負載測試服務器
主要是考察軟件系統在給定負載下的性能表現網絡
站在用戶角度去觀察在必定條件下軟件系統的性能表現多線程
負載測試的預期結果是用戶的性能測試需求獲得知足併發
例如:ide
能夠支持100個併發用戶執行各類查詢操做,要求各類查詢操做的響應的時間在5秒之內,服務器CPU利用率在80%如下性能
壓力測試:測試
1.爲了考察系統在極端條件下的表現,極端條件能夠是超負荷的交易量和併發用戶數spa
2.這個極端條件並不必定是用戶的性能需求,可能遠遠高於用戶需求操作系統
3.壓力測試是能讓咱們識別系統的弱點和在極限負載下程序將如何運行
4.壓力測試和負載測試的不一樣是,壓力測試的預期結果是系統出現問題,而咱們考察的是系統處理問題的方式
用戶量壓力例子:系統最大支持的同時在線用戶數是1000個,壓力測試需求測試在1000個用戶甚至2000個用戶同時在線是系統的表現
數據量壓力例子:在系統內存耗盡狀況下,測試系統的運行狀況,這種狀況下被測試系統也不該該崩潰
壓力測試的反常規操做:
1.當平均每秒出現1個或2箇中斷的狀況下,應當對每秒出現10箇中斷的情形來進行特殊的測試;
2.把輸入數據的量提升一個數量級來測試輸入功能會如何響應:
3.應當執行須要最大的內存或其餘資源(如CPU,內存,磁盤,網絡)的測試用例;
4.運行一個虛擬的操做的操做系統中可能會引發大量的駐留磁盤數據的測試用例;
5.兩倍的已經極基線的併發用戶數或者http鏈接數
隨機的關閉及重開鏈接到服務器上的網絡上集線器/路由器上網端口(例如,可經過SNMP命令實現)
6把數據庫斷線而後重啓
併發測試:
通常是和服務器端創建大量的併發鏈接,經過客戶端的響應時間和服務器端的性能檢測狀況來判斷系統是否達標到了既定的併發能力指標
負載測試每每就會使用併發來創造負載
併發測試每每涉及服務器的併發容量,以及多進程/多線程協調同步可能帶來三萬問題
併發測試例子:
1.400併發用戶,事務失敗率>1.35%,軟件系統失敗
2.500併發用戶,事務失敗率>10%系統中斷
3.600併發用戶,事務失敗率>80%,系統崩潰
基準測試:
當軟件系統中增長一個新的模塊的時候,須要作基準測試,以判斷新模塊對整個軟件對系統的性能影響
須要打開/關閉新模塊至少各作一次測試,關閉模塊狀態下的系統各個性能指標記下來做爲基準,而後與打開模塊狀態下的系統性能指標做比較
穩定性測試:
考察測試系統在必定負載下運行長時間後是否會發生問題
有些問題只有在運行一天或者一個星期甚至更長的時間纔會暴露,這種問題通常是程序佔用資源卻不能及時釋放而引發的
可恢復性測試:
測試系統可否快速地從錯誤狀態中恢復到正常狀態
可恢復測試一般結合壓力測試一塊兒來作