性能測試的基礎概念
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
記憶區域,將各種信息收集起來存放。數據從內存讀取要比從磁盤讀取速度快,而內存經常發生內存泄漏或內存溢出的現象。
隊列
可以理解成進站排隊的現象,隊列長,說明處理可能達到了極限或者遇到了阻塞。
網絡
重點關註網絡的流量,看是否存在網絡帶寬的瓶頸。
性能測試的基礎概念