看《做性能測試需要做些什麽》
我們說性能測試,那麽性能測試主要是什麽呢?
軟件性能包含兩方面特性:時間特性和性能特性。
時間特性:系統處理客戶請求的響應時間=呈現時間+系統響應時間
性能特性:測試過程中,資源消耗情況(CPU、內存、磁盤)
響應時間=網絡傳輸時間+應用服務器處理時間+數據庫處理時間
N1 N2 N3 N4 A1 A3 A2
並發用戶數:同一時刻 進行數據交互 所有用戶數(備註: !=系統所有用戶 & !=所有在線用戶。所以,並發用戶數如何計算?需參考、分析歷史數據、試上線運行)
吞吐量:單位時間 服務器處理的字節數 B/s通過不斷添加虛擬用戶數,到吞吐量的拐點,即服務器吞吐量的最大值)
吞吐率:單位時間 從服務器返回的字節數=吞吐量/測試時間
TPS:每秒 處理的事務。
資源利用率:CPU利用率、內存、磁盤、網絡
思考時間:用戶操作時,每個請求之間的時間間隔
Ir_think_time();
性能測試劃分:
負載測試-》不斷加壓,直到不可再加壓
壓力測試-》使用模擬負載方法,測試系統已達到一定的飽和程度
配置測試-》調節系統軟硬件環境,使系統在不同環境下進行性能測試,用於系統調優和規劃能力。
並發測試-》模擬多用戶同時並發
可靠性測試-》在一定業務壓力下持續運行
基準測試
各類測試的執行階段:
編碼:並發--壓力--容量
測試:負載--基準--配置
需理解最佳用戶數和最大用戶數。開始性能測試前,需要知道:
1、客戶的要求
如系統同時滿足**用戶登錄,平均每個用戶登錄時間不超過**秒
2、目前系統的性能
求最大用戶數和最佳用戶數,系統分析並找到壓力點
3、系統瓶頸
分析可能對系統造成瓶頸的邏輯業務
4、長時間壓力下性能狀況(強度測試)-》內存溢出
理論如上,操作如下:
1、需要熟悉我們的測試環境,從硬件、軟件、網絡環境三點入手
1)硬件方面:
分析服務器系統、CPU、內存、硬盤寫入情況
2)軟件方面:
從前端、中間件、服務器入手
3)網絡環境
做測試,主要是標準是什麽,目的是什麽,即預期結果。那麽如何獲取我們的標準,獲取 “有效的”性能需求呢?
例子:證劵行業某業務的“實際需求”
系統總容量達日委托6000萬筆,成交9000萬筆
系統處理速度每秒7300筆,峰值每秒10000筆
實際股東帳號 3000萬
-》需求:最佳並發用戶數需求:每秒7300筆
最大並發用戶數需求:每秒10000筆
基礎數據容量:實際股東帳號數3000萬
業務數據容量:日托6000萬,成交9000萬
如果我們根據以下2個假設:
1。采用2/8比例,即80%的業務在20%的峰值時間內完成,20%的業務在80%的非峰值時間內完成,那麽我們可以得到峰值處理業務量1.5億的80%為1.2億,非峰值處理業務量1.5億的20%為3000萬;
2。1天系統運行時間為20小時,另4小時為非營業的後臺處理時間,那麽峰值時間20小時的20%為4小時,非峰值時間20小時的80%為16小時。
我們可以計算到:
1。平均峰值處理速度1.2億/4*3600秒接近9000個/秒;
2。平均非峰值處理速度3000萬/16*3600秒約500個/秒;
我們可以計算到:
1。平均峰值處理速度1.2億/4*3600秒接近9000個/秒;
2。平均非峰值處理速度3000萬/16*3600秒約500個/秒;
考慮到特殊情況的發生,我們建議實際峰值處理速度要能達到理論計算的平均峰值處理速度的1.5到2倍,所以最終確定下來的建議峰值處理速度為9000個/ 秒*2=18000個/秒。我們拿這個結果向客戶說明,告訴他們原來的需求很可能在發生特殊情況時無法有效處理,客戶最終接受了我們的說法並調整了他們的需求。
這叫需求開發,通過分析修正了客戶的不合理需求,滿足了他們最根本的需要“系統總容量達到日委托6000萬筆,成交9000萬筆”,而處理速度是他們根據自己的需要估算出來的,並不準確。
所謂需求開發,也就是根絕客戶的核心需求,為客戶設計完整的需求體系,甚至根據客戶的業務發展需要,為客戶設計核心需求和需求體系。
取自:http://www.cnblogs.com/jackei/archive/2006/12/12/589473.html
性能測試常見指標:
1、工作負載
2、響應時間
3、吞吐量
TI:客戶端往服務器發出的請求包吞吐量
TO:服務器返回請求數據包的吞吐量
每秒點擊數:服務器的處理能力
看《做性能測試需要做些什麽》