1. 程式人生 > >性能測試的基礎概念

性能測試的基礎概念

嚴格 png 三層架構 inf 減少 ron 內存溢出 穩定 數據

1、什麽是軟件性能?

  主要從兩個方面體現:響應時間,及時處理能力。 首先,性能是一種指標,表明軟件系統或構件對其及時性要求的符合程度; 其次,性能是軟件產品的一種特性,可以用時間來進行度量。

2、不同角色對性能的關註點

用戶關註的性能:系統的響應時間(操作響應快);
系統管理員關註的性能:

技術分享圖片

開發人員的性能關註點:

技術分享圖片

性能測試人員關註點:

性能測試人員要全面考慮,即關註以上所有關註點,既需關註最表面、直觀的響應時間,也需內裏、本質的影響因素,如資源利用率、系統容量、穩定性、系統架構(eg三層架構)、業務數據流向、服務器瓶頸、網絡瓶頸、中間件等。

3、性能測試的目的

1)驗證系統的處理能力(是否達到用戶 | 產品提出的性能指標);

2)識別系統的性能瓶頸;

3)驗證系統的穩定性和可靠性:7*24小時壓力下,性能是否穩定;

4)系統調優(eg,12306:分流(分時間段出票)、加入排隊系統、全程票(減少庫存查詢))。

4、性能測試的方法:

負載測試(主要目的是找到系統處理能力的極限):不斷增加並發用戶數,驗證系統處理能力的極限。

關註:tps隨並發用戶數不斷增加的變化,拐點及拐點後的變化。

註意:在給定的測試環境下進行,通常需要考慮北側系統的業務壓力量和典型場景。

作用:一般用來了解系統的性能容量,或配合性能調優使用。

壓力測試:負載一定,持續運行一段時間(7*24小時)來驗證系統的穩定性。

5、性能測試的常用術語:

並發
狹義的並發:用戶在同一時間內做同一事情
廣義的並發:用戶同時操作不同的功能(混合場景:登錄、下訂單、、支付訂單)

在性能測試中,一般先進行狹義的並發(單場景單接口做性能測試,可更好地定位問題),再進行廣義的並發(混合場景(驗證系統的穩定性,在多個關聯接口時,會不會出現新的問題))

並發用戶數

系統用戶數:系統的註冊用戶數(包含僵屍用戶)

在線用戶數:登錄系統的用戶(不一定對服務器產生壓力)

並發用戶數:對服務器產生壓力的用戶

並發用戶數的確定:老系統-找運維;新系統:競品、做過的項目、經驗

事務

事務是性能腳本中的一個重要特性。要度量服務器的性能,需要定義事務,每個事務都包含事務開始和事務結束標記。事務用來衡量腳本中一行代碼或多行大媽的執行所消耗的時間。

響應時間

技術分享圖片

響應時間=網絡時間(N1+N2+N3+N4)+服務器處理時間(A1+A3)+數據庫處理時間(A2)

web的HTTP請求中響應時間包括了前段渲染時間,但是loadrunner中是不統計前段渲染時間的。

tps(Transaction Pre Second)

服務器每秒能處理的事務數,用來衡量服務器處理能力。基於事務統計。

吞吐量

指系統在單位時間內處理請求的數量,不嚴格意義上來說就是tps。

點擊率(Hit Per Second)

從客戶端發起請求服務器的數量(衡量客戶端性能,需排除網絡、本機產生的影響)。

資源利用率

指系統資源的使用程度,比如服務器(網絡及數據庫)的CPU利用率,內存利用率,硬盤利用率,網絡帶寬利用率等。

CPU

大腦,主要進行判斷和處理,能反應出系統的繁忙程度,一般分為系統CPU(%sys)與用戶態CPU(%user),其中系統CPU是處理系統本身所占用的資源,用戶CPU則是處理程序所占用的資源。對象不同。

技術分享圖片

用戶態CPU高:代碼、sql語句處理有問題;

系統態CPU高:內核、服務器資源瓶頸。

Load Average

指一段時間內CPU正在處理和等待CPU處理的事務,也就是CPU使用隊列的長度的統計信息。eg:地鐵進站,等待乘客越多,load average越大。

Memory

記憶區域,將各種信息收集起來存放。數據從內存讀取要比從磁盤讀取速度快,而內存經常發生內存泄漏或內存溢出的現象。

隊列

可以理解成進站排隊的現象,隊列長,說明處理可能達到了極限或者遇到了阻塞。

網絡

重點關註網絡的流量,看是否存在網絡帶寬的瓶頸。

性能測試的基礎概念