1. 程式人生 > >軟體測試高階技術-效能測試

軟體測試高階技術-效能測試

前言

近年來,隨著我國軟體產業的蓬勃發展以及對軟體質量的重視,軟體測試行業也越來越被軟體企業所看重,軟體測試成為了一個前景光明的新興產業。由權威調查機構釋出的《軟體測試從業人員調查報告》顯示,目前軟體測試行業呈現出高階人才缺口大,整體薪資較高的行業趨勢。不得不承認,很多同學大學畢業就選擇軟體測試這個行業,嘴上說對測試感興趣,但十有八九都是因為覺得測試入門的門檻低,不需要什麼開發技術知識。額,關於這個觀點,其實我一開始也是這樣想的......

但是後來......關於這個話題咱們可以以後再說。接下來,我結合軟體測試行業的特點,帶大家初步認識軟體測試的進階技術-效能測試。

那麼我們來看看,為什麼要做效能測試?“

大家都是聰明人,就不要拐彎抹角了,就是為了提升競爭力,多漲工資嘛”,童鞋你很機智,但是不要說得那麼直接嘛。可是效能測試不是所有專案都有需要進行的,怎麼辦?因此,平時的自學習慣在這時就體現的稀里嘩啦,那麼,讓我們開始吧。

Part 1  什麼是軟體效能

軟體的效能是個很大的概念,覆蓋面非常廣泛,對一個軟體系統而言,包括執行效率、資源佔用、穩定性、安全性、相容性、可擴充套件性、可靠性等等。不同角色眼中的效能又是不一樣的,有使用者視角的軟體效能、管理員視角的軟體效能 、 產品開發人員視角的軟體效能。

從使用者角度來說,軟體效能就是軟體對使用者操作的響應時間。

從管理員角度來說, 軟體效能就是,系統的響應時間、系統執行時伺服器的狀態,如CPU

記憶體使用情況、系統是否能夠實現擴充套件、系統支援多少使用者訪問、系統性能可能的瓶頸在哪裡、系統是否支援7 * 24小時的業務訪問。

從產品開發人員角度來說,軟體效能就是,架構設計是否合理、資料庫設計是否合理、程式碼是否存在效能方面的問題、系統中是否有不合理的記憶體使用方式。

但是我們常說的效能測試概念呢,主要是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。但是這些指標都是為了一個目的,就是儘可能滿足各個角色對效能的需求。效能測試的目的主要是,評估系統的能力、識別體系中的弱點、驗證系統可伸縮性(resilience)和可靠性(reliability)、系統調優。

Part2   效能測試的指標 

併發使用者數、響應時間、吞吐量、資源利用率

併發使用者數 是指在某一給定時間內,某個特定點上進行會話操作的使用者數。PS: 我們產品併發的概念實際是線上使用者數。

響應時間指的是客戶端發出請求到得到響應的整個過程所經歷的時間。

吞吐量是指單位時間內系統處理的客戶請求的數量,直接體現軟體系統的效能承載能力。PS:一般來說,吞吐量用請求數/秒或頁面數/秒來衡量,從業務的角度,吞吐量也可以用訪問人數/天或處理的業務數/小時等單位來衡量。從網路的角度來說,也可以用位元組數/天等單位來考察網路流量。

資源利用率是指系統資源的使用程度,比如伺服器的CPU利用率、記憶體利用率、磁碟利用率、網路頻寬利用率等。PS:除了上述資源,我們還應該考慮資料庫連線池使用情況,JVM記憶體使用情況,資料庫cpu佔用情況等因素。

Part 3   效能測試的內容

負載測試,主要用於描述常規的效能測試,通過模擬生產執行的業務壓力和使用場景組合來測試系統的效能是否滿足生產要求。目的是為了在特定的執行條件下驗證系統的能力狀況。

壓力測試,是為了發現在什麼條件下應用程式的效能會變得不可接受。壓力測試與負載測試的比較而言,他們的實現方法基本相同,但是測試的目的不同。

容量測試,為了確定測試物件在給定時間內能夠持續處理的最大負載或工作量,使測試物件處理大量的資料,以確定是否達到了將使被測物件發生故障的極限。目的是為了測試單業務在一定資料容量下效能表現。

網路效能測試,測試網路頻寬、延遲、負載和埠的變化對使用者的響應時間的影響主要是測試使用者數目與網路頻寬的關係,評估網路的依賴程度。

可靠性測試(疲勞測試),其中軟體可靠性的含義是,在規定條件下,在規定時間內,軟體不引起系統失效的概率。可靠性測試的含義是,在有使用代表性的環境中,持續執行系統某些功能,驗證系統穩定性的過程。目的是為了儘量模擬客戶的使用環境,一定業務壓力下,持續執行過程N*24小時,測試系統的穩定性。

Part 4  效能測試的步驟

這裡要展開寫,確實要寫很多,暫時就先用這一張圖來簡單介紹一下

 

效能測試的步驟

由上面的圖不難看出,效能測試不單單是效能測試工程師單獨完成的工作,也不是一個獨立的工作,他也是需要和整個專案串聯起來,也需要協調各個環節的角色配合完成的工作。

Part 5  常見效能測試工具

常用的效能測試工具有HPE公司的LoadRunner、CompuWare 公司的QALoad 、Microsoft公司的WAS 、RadView公司的WebLoad 、IBM公司的RPT 、開源工具Jmeter、OPENSTA等。當然,大多數效能測試工程師覺得最好用的就是 LoadRunner(商業軟體、需要購買license),用Virtual User Generator來錄製指令碼、編輯指令碼,用Controller來佈置測試場景、執行測試場景,最後用Analysis來對測試結果進行分析,一條龍服務(完美)。

Part 6 小結

效能測試是一個對技術全面性要求很高的(對於好的效能測試工程師而言),不僅僅需要學會工具的使用,而且還需要學習資料庫、作業系統、Java等和系統性能息息相關的知識,還是相當有難度的。因此,學習、學習、學習,做為測試工程師,眼界要放的更高、更遠,瞭解更多的技術知識,更要利用現有的資源,完善自己的知識體系,成為一名更加出色的測試工程師。

created by 陳瑜