性能測試——監控指標 & 性能測試模型 & 性能測試分類 & 性能測試的實施

1 性能測試的概念
(1)什麼是系統的性能?
系統性能是一個很大的概念,對一個軟件系統而言包括執行效率、資源佔用、穩定性、安全性、兼容性、可擴展性、可靠性等等。
(2)什麼是性能測試?
性能測試是通過自動化的測試工具,模擬多種正常、峯值以及負載條件對系統各項性能指標進行測試。

2 性能測試的監控指標
(1)併發數:在同一時間,進行同一操作的用戶數;
(2)響應時間:也叫作請求相應時間,是對請求做出響應的時間;
(3)事務響應時間:事務是一組密切相關的操作集合,事務響應時間是對這一組操作集合響應的時間;
(4)每秒事務通過數TPS:指每秒系統能夠處理的事務的數量;
(5)點擊率:每點擊一次相當於向WEB服務器發送一次HTTP請求,點擊率越大,服務器的壓力也就越大;
(6)吞吐量:單位時間內,系統處理用戶請求的數量,直接體現軟件的承載能力(吞吐量的單位沒有固定的);
(7)思考時間:真實的模擬用戶的操作,思考時間是指每個請求或者操作時間的間隔時間;
(8)資源利用率:不同系統資源的使用情況。

3 性能測試模型
(1)理髮店模型(曲線拐點模型)
A. 隨着併發用戶數的增加,在輕壓力區的相應時間變化不大,比較平緩,進入重壓力區後呈現增長趨勢,進入拐點區後傾斜率增大,響應時間急劇增加;
B. 隨着併發用戶數的增加,吞吐量也在不斷增加,進入重壓力區之後逐漸平緩,到達拐點區時說明系統已將到達處理的極限,急劇下降;
C. 隨着併發用戶數的增加,資源利用率也在不斷增加,進入重壓力區後逐漸平緩,至拐點區時已經達到飽和狀態。
(具體介紹可參考:http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html
曲線拐點模型
(2)地鐵模型
A. 隨着地鐵站內乘客數量的增多,地鐵的資源得到充分利用;
B. 隨着地鐵站內乘客數量的增多,出現部分乘客等待的情況,等待時間較短;
C. 當乘客的行李過大導致進站阻塞,可以增加站口的寬度,緩解這種情況;
D. 當乘客越來越多時,現有的刷卡機已經無法滿足乘客的需求,可以增加刷卡機的臺數;
E. 當處於上班高峯期時,進站乘客越來越多,站臺的情況已經完全無法滿足乘客的需求,導致地鐵站過分擁堵,乘客不斷抱怨… …
(具體介紹可參考:http://www.cnblogs.com/puresoul/p/5458734.html

地鐵模型說明:
A. 一旦發生性能問題,但從硬件出發無法從根本上解決性能問題;
B. 要進行性能調優時儘可能將多種方式中和起來一同解決。

4 性能測試的分類
(1)基準測試:基準測試是一個標尺,有基礎的標準,能夠通過對比發現系統的不同點和變化;
(2)性能測試:模擬在正常條件的情況下,系統的能力情況;
(3)負載測試:在被測系統上不斷施加壓力直到性能已經到達某種飽和的情況,可以通過負載測試找到系統的處理極限,爲系統調優提供數據;
(4)壓力測試:在被測系統已經飽和的情況下,繼續施加壓力,找到系統在高負載下的問題;
(5)併發測試:通過模擬用戶的併發訪問,找到多用戶併發訪問時是否存在什麼性能問題;
(6)配置測試:通過對軟硬件環境的調整,使軟硬件資源達到最大化的利用;
(7)可靠性測試:對系統加載一定壓力的情況下,讓系統持續運行一段時間,測試系統在該種條件下能否正常運行;
(8)失效性恢復測試:並不是每個系統都支持失效恢復性測試,失效恢復性測試是針對有備份和負載均衡的系統設計的,該測試是驗證在系統出現局部性故障時,用戶能否正常使用系統,用戶的使用情況會受到多大程度的影響;
(9)大數據測試:與壓力測試、負載測試、可靠性測試、併發測試相結合的測試。

5 性能測試的實施 (1)性能測試的前期準備:系統基礎功能驗證、組建測試團隊、測試工具需求確認 (2)引入工具:工具選擇、工具應用技能的培訓、確定工具應用過程 (3)編寫性能測試方案:調研測試需求、測試策略和測試資源需求、性能測試計劃 (4)腳本的設計與開發:測試環境設計、測試場景設計、測試用例設計、腳本和輔助工具的開發 (5)測試執行與管理:建立測試環境、部署測試腳本和測試場景、執行測試結果和記錄結果 (6)性能分析與調優:根據測試結果進行分析,給出調優方案 (7)編寫性能測試報告:測試目標、測試描述、測試結果和數據