二、識別體系中的弱點:受控的負荷可以被增加到一個極端的水平,并突破它,從而修復體系的瓶頸或薄弱的地方。
三、系統調優:重復運行測試,驗證調整系統的活動得到了預期的結果,從而改進性能。檢測軟件中的問題:長時間的測試執行可導致程序發生由于內存泄露引起的失敗,揭示程序中的隱含的問題或沖突。
四、驗證穩定性(resilience)可靠性(reliability):在一個生產負荷下執行測試一定的時間是評估系統穩定性和可靠性是否滿足要求的唯一方法。
性能測試類型包括:
負載測試:負載測試是一種性能測試指數據在超負荷環境中運行,程序是否能夠承擔。
強度測試: 強度測試是一種性能測試,他在系統資源特別低的情況下軟件系統運行情況。
容量測試:確定系統可處理同時在線的最大用戶數
性能測試觀察指標:
性能測試主要是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
在實際中作中我們經常會對兩種類型軟件進行測試:bs和cs,這兩方面的性能指標一般需要哪些內容呢?Bs結構程序一般會關注的通用指標如下(簡):
Web服務器指標指標:
1、 Avg Rps: 平均每秒鐘響應次數=總請求時間 / 秒數;
2、 Avg time to last byte per terstion (mstes):平均每秒業務角本的迭代次數 ,有人會把這兩者混淆;
3、 Successful Rounds:成功的請求;
4、 Failed Rounds :失敗的請求;
5、 Successful Hits :成功的點擊次數;
6、 Failed Hits :失敗的點擊次數;
7、 Hits Per Second :每秒點擊次數;
8、 Successful Hits Per Second :每秒成功的點擊次數;
9、 Failed Hits Per Second :每秒失敗的點擊次數;
10、Attempted Connections :嘗試鏈接數;
11、CS結構程序,由于一般軟件后臺通常為數據庫,所以我們更注重數據庫的測試指標:
12、User 0 Connections :用戶連接數,也就是數據庫的連接數量;
13、Number of deadlocks:數據庫死鎖;
14、Butter Cache hit :數據庫Cache的命中情況
當然,在實際中我們還會察看多用戶測試情況下的內存,CPU,系統資源調用情況。這些指標其實是引申出來性能測試中的一種:競爭測試。什么是競爭測試,軟件競爭使用各種資源(數據紀錄,內存等),看他與其他相關系統對資源的爭奪能力。
性能測試的流程步驟
和做其他的測試沒有什么區別,做性能測試也要如下步驟來做:
1、 測試需求分析
2、 測試設計
3、 測試腳本開發
4、 測試實施
5、 測試結果分析
測試需求分析,性能測試(或者其他的測試)做的好與壞完全取決于測試分析做得好不好。軟件最終始要被應用的,要在應用的實踐中考驗,所以,任何類型的測試分析都要以實際業務的要求為依據。那么,性能測試的測試需求分析都需要分析哪些內容呢?
1、 性能測試的需求來源??蛻粜枨蠛推谕?,實際業務需求,系統需求。
2、 業務數據量級,要根據實際業務分析可能出現數據吞吐瓶頸的地方,比如本案中作者提到的要求每個服務端連接500個客戶端,總要求連接5000個客戶端。分析到這個程度還不夠,還要進一步分析業務操作集中的點,時間段和量。如,本案中客戶端開啟會自動連接服務端,那么在每天開始上班的時候客戶端的開啟就會出現峰值,可能會持續20分鐘,服務端需要響應客戶端的連接請求,請求還可能并發至少 5000/120次每秒,同時短時間內集中請求的頻率也是有閾值限制的。
3、 系統架構,在每種不同的系統架構的實施中,開發人員可能選擇不同的實現方式,造成實際情況紛繁復雜。我們不可能對每種技術都詳細解說,這里只是介紹一種方法提供給你如何選擇測試策略,從而幫助分析軟件不同部分的性能指標,進而分析出整體架構的性能指標和性能瓶頸。
原文轉自:http://www.uml.org.cn/Test/200904306.asp