性能測試應用領域

大概說說性能測試的五種應用領域吧,可能純文字內容太多,沒耐心的話,能夠跳過不看。。。    ————參考書籍《軟件性能測試過程詳解與案例剖析》算法

 

歸納來講,能夠將性能測試的應用領域劃分爲下面五個不一樣領域:數據庫

·能力驗證服務器

·規劃能力網絡

·性能調優架構

·瓶頸發現併發

·性能基準比較函數

1、能力驗證工具

能力驗證是性能測試中最簡單也是最多見的一個應用領域。一個典型的能力驗證的問題會採起這樣的描述方式:某系統可否在A條件下具備B能力?性能

能力驗證領域的特色與性能測試的特色很是接近:單元測試

①要求在已肯定的環境下運行

只有在一個肯定的環境下運行,軟件性能的驗證纔是有意義的;由於沒法或很難根據系統在一個環境中的表現去推斷其在另外一個不一樣環境中的表現,所以這種應用領域內的測試

必需要求測試環境(如硬件設備、軟件環境、網絡條件、基礎數據等)已肯定。

②根據典型業務場景設計測試方案和用例

能力驗證須要瞭解被測系統的典型業務場景,並根據典型場景設計測試方案和用例;一個典型場景包括操做步驟和併發用戶量條件,設計用例時,須要肯定響應的性能指標。

可靠性測試的內容也能夠納入到該應用領域。由於從用戶角度出發,對軟件可靠性的保證也是承諾的軟件性能的一部分。

在能力驗證領域,通常採用的測試方法有:性能測試、可靠性測試、壓力測試和失效恢復性測試。

 

2、規劃能力

規劃能力領域一般關心的是:如何使系統具備咱們要求的性能能力或者某種可能發生的條件下,系統具備如何的性能能力?

它一般會被描述爲:某系統可否支持將來一段時間內的用戶增加或者應該如何調整,使系統可以知足增加的用戶數的需求?

能力規劃領域具備如下特色:

①它是一種探索性測試

規劃能力領域側重點是規劃。即該領域不依賴預先設定的用於比較的目標,而要求在測試過程當中瞭解系統自己的能力;這種測試與能力驗證領域內的測試最大區別在於其探索性。

②它可被用於瞭解系統性能以及得到擴展性能的方法

規劃能力領域的問題是指望瞭解系統如今的能力,得到擴展系統性能以應對未來的業務增加的方法。該領域在測試過程當中,除了要經過負載測試等方法獲知系統性能表現外,還須要經過

諸如更換設備、調整參數等方法獲知系統性能可擴展的元素。

在規劃能力領域,通常採用的測試方法有:負載測試、配置測試和壓力測試。

 

3、性能調優

性能調優領域主要對應於系統性能進行調優。通常來講,性能調優和其餘性能測試應用領域交雜在一塊兒的;性能調優可調整的對象衆多,並且在系統應用的各個階段均可以進行調優。

對於已部署在實際生產環境中的系統應用,對其進行性能調優可能會首先關注應用系統部署環境的調整,例如:對服務器的調整、對數據庫參數以及對應用服務器的參數調整等;

對正在開發中的應用來講,性能調優會更多關注應用邏輯的實現方法、應用中涉及的算法、數據庫訪問層的設計等因素;此時並不要求是測試仍是生產環境,只要整個調優過程當中具備

一個可用於比較的測試基準環境便可。

一個標準的性能調優過程大概以下:

一、肯定基準環境,基準負載和基準性能指標

基準負載是指一種可被用來衡量和比較性能調優測試結果的標準(每次執行性能測試時環境要嚴格保持一致)的運行環境、測試操做腳本和可被用來衡量調優效果的性能指標。

二、調整系統運行環境和實現方法,執行測試

這是性能調優過程當中的核心步驟,目的是經過調整,提升應用系統的性能表現;主要包括以下三個方面:

①硬件環境的調整

主要對系統運行的硬件環境進行調整,包括改變系統運行的服務器、主機設備環境(改用具備更高性能的機器,或調整某些服務器的物理內存總量,CPU數量等)、調整網絡環境(更換

更快速的網絡設備,或採用更高寬帶的組網技術)等;

②系統設置的調整

主要對系統運行的基礎平臺設置進行調整,好比:根據應用須要調整Unix系統的核心參數,調整數據庫的內存池大小,調整應用服務器使用的內存大小或採用更高版本的JVM環境等;

③應用級別的調整

主要是對應用自己的調整,包括選用新的架構、採用新的數據訪問方式或修改業務邏輯的實現方式等;

PS:實際性能調優過程當中,具體的調整視具體狀況而定;並且不要一次調整過多的參數或應用實現方法,不然很難判斷具體哪一個調整對性能產生了影響(通常3~5處最好)。

三、記錄測試結果,進行分析

該步驟和上一步驟構成了一個性能調優循環,循環的出口是「達到預期的性能調優目標」。

性能調優主要使用的測試方法有:配置測試、負載測試、壓力測試和失效恢復性測試。

 

4、瓶頸發現

瓶頸發現應用領域的主要目的是經過性能測試手段來發現系統中存在的缺陷,瓶頸。

常常在工做中遇到這樣的問題:應用在測試環境下運行正常,部署到生產用戶環境,就會出現莫名其妙的錯誤;這些狀況並不徹底是併發或者性能問題致使,大多數狀況下,都是因爲

併發時的線程鎖、資源競爭或內存問題引發的。

瓶頸發現應用領域通常做爲系統測試階段的一種補充手段;在測試過程當中發現併發時的應用問題,或做爲系統維護階段的問題定位手段,對系統運行過程當中出現的問題進行重現和定位。

該應用領域的主要目的是發現缺陷、瓶頸,並沒有可參照的性能指標或須要達到的性能目標,所以主要採用併發測試的方法。

 

5、性能基準比較

性能基準比較一般用於敏捷開發過程當中。

敏捷開發:大約興起於2000年,與傳統重量級軟件開發方式相比,敏捷開發採納輕量級的軟件開發過程,更注重「產出可用的軟件」,「溝通勝於文檔」等概念,使用「擁抱變化」的態度來

面對開發中不斷的需求變動。

敏捷開發將軟件開發過程劃分爲多個短期週期迭代,每一個迭代定義了本次迭代須要完成的目標,一個迭代中保持需求的不變以「交付了迭代目標的可工做軟件」做爲每一個迭代完成的標誌。

因爲敏捷開發採用「遞增」的開發模式,很難再每一個迭代週期內定義明確的性能需求。所以,性能基準比較,就是在不設定目標的狀況下,經過每次迭代的比較來獲得性能表現的變化,根據

這些變化決定迭代是否達到了預期的目標。

在實際操做中,能夠將性能測試造成固定的腳本,並在固定環境上對模塊執行相應的性能測試,測試結果經過工具直接寫入數據庫並經過圖形展示工具將其展示成折線圖,其能夠直觀的反應

模塊的每一個迭代中性能表現的變化,甚至能夠做爲驗收條件的一部分。

另外,在敏捷開發中,設定性能基準比較的不只僅是模塊,還能夠在單元測試中爲給定的函數設置性能基準比較。

 

下表將性能測試的方法和應用領域作了關聯,實際執行中可根據須要選用合適的方法:

PS:顏色越深,表明越重要。。。

 

總結:性能測試應用領域的劃分主要按照性能測試的目的和目標進行劃分,不一樣應用領域的性能測試採用不一樣的方法;固然,實際的性能測試中,狀況每每比這個更復雜,這種狀況下,

應該按照具體狀況設計測試實施計劃,分解拆分,爲其設計規劃不一樣的測試方法。

相關文章
相關標籤/搜索