性能測試概述

爲什麼要進行性能測試:
多個客戶端同時訪問造成壓力
●Web應用服務器
●應用服務器
●數據庫
●網絡
在這裏插入圖片描述

所以性能測試要在生產之前,把相應的壓力監測到並還原
性能測試的概念
1.軟件系統的性能測試是一個很大的概念, 覆蓋面非常廣泛。
對軟件系統而言,包括執行效率、資源佔用、系統穩定性、安全性、兼容性、可靠性、可擴展性等。(在高併發的情況下,是否還能像一個人兩個人訪問一樣順暢)

2.性能測試是描述測試對象與性能相關的特徵並對其進行評價而實施和執行的一類測試
主要通過自動化的測試工具模擬多種正常、峯值以及異常負載條件下來對系統的各項性能指標進行測試。

性能測試概述
性能測試通常包含以下方面的內容
評估生產準備狀態
評估性能判定標準
比較多個不同系統或同一系統不同配置之間的性能特徵
找出導致性能問題的源頭
幫助進行系統性能調優
確定吞吐量水平(tps這樣的指標)

性能測試的核心活動
◆確定測試環境
物理環境、生產環境、測試團隊可利用的工具和資源.

◆確定性能驗收標準
確定響應時間(在很大的併發的情況下訪問系統,我們能夠在多久的時間內實時返回)、吞吐量(每秒能夠處理的任務數 tps)、資料利用總目標和限制(cpu,內存的利用狀態)。

◆計劃和設計測試
確定關鍵場景;(功能測試中偏向於正常場景,性能測試的話則是多併發,多個用戶訪問)
確定典型用戶的可變性,以及如何模擬這些變化。(是一起操作不斷操作,還是一部分操作一部分不操作等)
確定測試數據(要多少用戶)
確定需要收集的度量值(響應時間,tps,吞吐量等)

◆配置測試環境
隨着需要測試的功能和組件的完善,逐步爲每個策略準備執行所需的測試環境、工具以及資源。

◆實現測試設計
根據測試設計逐步展開性能測試

◆執行測試
執行和監控測試

◆分析結果、報告以及重複測試
整合並共享結果數據

性能測試目標
◆評估軟件發佈準備
預測或者估計應用軟件在實際生產方面的特性特徵,並且基於這.些預測來評估是否需要強調性能因素。
提供相關數據,反映用戶可能會對系統性能特徵產生哪些不滿意
提供數據幫助預測,由於可伸縮原因和穩定性問題,或者由於用戶不滿意應用軟件的相應時間所導致的收入損失或者品牌可信度降低。

性能測試介紹
評估基礎結構是否恰當:
評估當前容量是否足夠
確定穩定性的可接受範圍
確定應用軟件基礎結構的容量
比較不同的系統配置,確定哪些配置可以在實際應用和商業需求之間達到最佳效果
確定應用軟件在預計的資源使用限制範圍內已經顯示出來最佳性能特徵。

評估已開發軟件的性能是否滿足要求:
在對應軟件進行修改以前和以後,都需要確定應用軟件已經獲得了滿意的性能特徵
提供應用軟件當前所具有的性能特徵與所能達到的最佳性能特徵之間的比較。

提高性能調整效率:
分析應用軟件的各種不同負載水平下的運行狀態,確定應用軟件的瓶頸
在進行生產發佈之前,提供與產品的運行速度、可伸縮性和穩定性相關的信息,這樣可以使得相關利益方能夠對是否或者何時調整系統作出更加明智的決定。

性能測試的種類
◆負載測試
◆壓力測試
◆容量測試
◆其他:
配置測試
併發測試
可靠性測試
穩定性測試…

◆性能測試是確定或者有效驗證了系統或者應用軟件在測試環境下的速度、可伸縮性以及(或者)穩定性等各種特性。
◆性能是指足以滿足項目或者產品的性能目標的相應時間、吞吐量以及資源利用率等(產出即評價的指標這些)
◆性能測試是一個總體的概念,其他的性格相關的測試都是性能測試的子範疇。

負載測試

1.側重於確定當前測試中的系統或者應用軟件在工作負載條件下,或者在實際運行階段加載預期的容量時,系統或者應用軟件所具備的相關性能特性。(要達到五萬併發,並且響應時間要在0.5s以內,所以就在這個條件下去看相應的併發下系統的性能指標比如tps,時間,cpu等)

2.通過逐步證據系統負載,測試系統性能的變化,並最終確定在滿足性能指標下,系統所能夠承受的最大負載量。(用戶的體驗時間,不管做什麼操作,響應時間不能超過0.5s,給我一個人數的負載量指標。所以就不斷嘗試加壓,達到系統能夠負載的最大)

3.負載測試是通過逐步加壓的方式來確定系統的處理能力,確定系統能夠承受的各項閥值。

壓力測試
1.確定當系統或者應用軟件在某些超過實際運行階段所預期的條件下時所具備的性能特性。(假如在負載中已經確定了系統能夠承受的最大是8500,那麼現在就從5800開始不斷加壓,讓某些資源達到飽和甚至失效 ,來看看當前性能指標是什麼情況)
2.通過逐步增加系統負載,測試系統性能的變化,並最終確定在什麼負載條件下系統性能處於失效狀態,並獲得系統能提供最大的服務基本。
3.壓力測試是逐步增加負載,使系統某些資源達到飽和甚至失效的測試。

容量測試
1.在滿足性能目標的前提下,系統能夠最大處理的最大會話能力,確定系統可處理同時在線的最大用戶數。
2.容量測試確定了服務器的極限失效點,同時監控在各種不同負載和流量模式水平下的性能結果。(在滿足性能目標的前提下,能夠達到的 最大處理數,只要系統不崩潰,還能正常反饋,能達到這麼大的併發就行,慢點就慢點。比如內存cpu已經到99.9%,這到候是10000,但是還能正常跑,如果加到10050,崩掉了,那這個10000就是容量測試的結果以及相應的性能指標 )

配置測試(調整jdk,軟件參數,不調整代碼)
通過對被測試軟件的軟硬件配置的測試,找到系統各項資源的最優分配原則。

併發測試
測試多個用戶同時訪問同一個應用、同一個模塊或者數據記錄時是否存在死鎖或者其他性能問題,幾乎所有的性能測試都會涉及到一些併發測試

可靠性測試
通過給系統加載一 定的業務壓力的情況下,運行一-段時間,檢查系統是否穩定。通常可以測試出系統是否有內存泄漏等問題。(不停的跑)

穩定性測試
在複雜多變的環境下系統所能夠提供的總可靠性、健壯性、功
能和數據完整性、有效性以及響應的連續性。(比如做一個不停服升級,系統是否穩定,客戶是否能操作)

核心性能測試的活動:
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述核心性能測試活動
◆活動1:確定測試環境

確定物理環境、生產環境以及測試團隊可利用的工具和資源。
物理環境包括:硬件、軟件以及網絡配置。

在測試開始時就對整個測試環境有一個全面的瞭解,可以使得測試設計和計劃更加有效,並且有利於在項目初期就確定測試中的複雜問題。

◆活動2:確定性能測試驗收標準(產品提供,還有經驗設計來確定驗收標準)
確定響應時間、吞吐量、資源利用總目標以及限制。

一般來說,響應時間是用戶關係的焦點,吞吐量是業務關係的焦點,資源利用則是系統關係的焦點。
確定項目成功的標準,這個標準可能並不包含在上面所確定的總目標和限制之中;例如:利用性能測試來評估,怎樣組合相關的配置纔可以帶來最佳性能特徵。(我們能夠接受的響應時間,比如頁面1.2s以內,app0.5s之內)

◆活動3:計劃和設計測試
確定關鍵場景
(保證5000併發,同時進入同時點擊,要求持續多少分鐘)
確定典型用戶的可變性,以及如何模擬這種可變性;
確定測試數據.
將這些信息整合到一個或者多個系統使用情況模型中,以進行實現、執行和分析。
(場景的組合,一部分秒殺,一部分在做別的操作)

◆活動4:配置測試環境
隨着需要測試的功能和組件的完善,逐步爲每個策略準備執行所需要的測試環境、工具以及資源
確保測試環境已經配置妥當,可以進行資源監控

◆活動5:實現測試設計
根據測試設計逐步展開性能測試

◆活動6:執行測試
執行和監控測試
保證測試、測試數據以及結果收集有效
監控測試和測試環境,確保進行有效的測試以保障結果分析的正確性

◆活動7:分析結果、報告以及重複測試
整合並且共享結果數據,不僅要對單個數據進行分析,還要從一個功能交叉的測試團隊角度來分析數據
如果所有度量都在可接受的範圍內,沒有違反任何預設閥值,並且收集到了所有需要的信息,就完成了基於特定配置的特定場下的測試
(前一次性能測試如果沒有達到目標,可能需要重新進行測試,這個時候就不需要前面幾步,需要後面的測試執行即可。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章