性能測試之穩定性測試(可靠性測試)

最近兩天在系統的複習性能測試方面的知識,結合以前的性能測試經驗有了一些總結,但願寫出來與你們分享,但願多提寶貴意見,共同進步~數據庫

概念

首先來講說性能測試:性能是軟件的一種非功能特性,他關注的不是軟件是否完成了特定的功能,而是軟件在完成特定功能是展現出來的及時性。及時性從不一樣的視角表明不一樣的指標:架構

  1. 用戶:響應時間
  2. 系統管理員:資源利用率,可擴展性,系統穩定性,系統容量
  3. 開發人員:系統架構,數據庫設計,設計和代碼實現

可見,系統穩定性對系統管理員的意義重大,穩定性的好壞也能夠直接影響到最終用戶所關心的「響應時間」,因此說穩定性測試時性能測試中很是重要的一環。數據庫設計

穩定性測試(亦可稱可靠性測試)經過給系統加載必定的業務壓力,讓系統持續運行一段時間(通常爲7x24小時),檢測系統是否可以穩定運行。性能

 

如何實施

  • 識別並確認軟件主要業務(是否須要穩定性測試)
    • 將穩定性測試的重心放在軟件最有Value的地方,好比說一個搶票系統,它最有value的地方是當有必定數量的用戶同時進行買票操做是系統的相應時間,資源利用率等是否可以正常且穩定,而不是用戶如何添加新的聯繫人,修改我的信息等
  • 羅列主要用戶場景及相應負載量
    • 用戶場景能夠根據軟件主要業務進行設定
    • 對主要場景負載量須要有一個清晰的定義(或者經過負載測試驗證了用戶場景的負載量,這將做爲一個標準的負載在穩定性測試中使用)
  • 制定穩定性指標模型(Modeling)
    • 根據用戶場景建模,建立合適合理的穩定性指標模型(以後會有一個例子)
  • 測試環境準備(對軟硬件環境的配置:配置的來源能夠是客戶環境模擬、需求文檔規定的配置或者配置測試得出的最佳配置)
  • 識別穩定性的主要性能指標(KPI)
    • 用來描述穩定性測試關注的系統指標,好比響應時間、CPU、內存使用率等等,須要根據具體業務進行定義  
  • 測試的執行和數據收集
  • 按照相應穩定性指標模型(Modeling)分析測試結果
    • 將測試結果應用在穩定性測試模型中,觀察是否知足穩定性要求
  • 持續改進(若有必要)

穩定性指標模型(例子)

下面咱們拿一個BI(商業智能)的例子來進行咱們的穩定性測試建模
  1. 軟件主要業務:從大量元數據中提取(ETL)客戶關心的數據並最終生成報表(本文以微軟平臺BI爲例:SSIS,SSAS,SSRS)
  2. 用戶場景:利用SSIS 包進行ETL操做將元數據計算轉化後導入到數據立方體(Cube)中。
  3. 典型負載:每小時3000個用戶,100000條數據,執行7x24小時
  4. 測試環境:需求文檔中規定的配置
  5. 主要性能指標:
    1. ETL時間:9分鐘,差異:1分鐘,方差:<0.1
    2. 系統相關:CPU,Memory,Private Mbytes/sec等
  6. 穩定性指標模型:
    1. 計算公式

  

2. 穩定性模型測試

 

3. 從圖表中能夠看出:spa

    • ETL上限爲12分鐘(即若是超過12分鐘就證實有瓶頸,須要調查)
    • ETL平均值爲9分鐘
    • 控制線的上下方分別爲Avg加減3倍的方差
    • 實際使用時間圍繞平均值上下分佈(標準爲同一貫不能出現連續7個點:如連續7個實際檢測值都在平均值的上方,這時就須要進行調查)

      4. 系統方面的指標也能夠按照這個方法去分析。(固然,對系統資源佔用要求不高的系統能夠直接經過佔用曲線來分析穩定性)設計

7. 執行測試獲取結果,套用指標模型進行分析blog

總結

總的來講,穩定性測試是用來驗證產品在必定的負載下是否可以長時間的穩定運行,其主要目的是驗證能力,並在能力的驗證過程當中找到系統不穩定的因素並進行分析解決。內存

相關文章
相關標籤/搜索