性能測試針對系統的性能指標,建立性能測試模型,制定性能測試方案,制定監控策略,在場景條件之下執行性能場景,分析判斷性能瓶頸並調優,最終得出性能結果來評估系統的性能指標是否滿足既定值
步驟:
在線用戶數、並發用戶數、壓力線程數、TPS的關系如下:
1.單個用戶的TPS計算:通過日誌,拉取壹個用戶的操作記錄,記錄下來壹個事務的操作時間。例如:1個用戶,100秒內,完成了壹個完整流程,有4個操作(查詢商品、填寫信息、支付、訂單詳情),調用了20個接口。
用戶級TPS:1 1/100=0.01TPS。 (1個用戶) (1個完成業務)/100s
操作級: 1 4/100=0.04 TPS. (1個用戶) (4個操作)/100s
接口級: 1 20/100=0.2TPS (1個用戶) (20個接口)/100s
2.多用戶的TPS。從生產拉取1天的用戶量,記算下平均完成的時間(這會有壹個問題就是很多用戶沒有真實走完壹個完整業務,所以這個TPS計算是要註意?為了方便僅做假設每個用戶是在100秒內完成)假如有壹100萬的用戶,在1天內完成業務
用戶級TPS:1000000 1 1/24/60/60=11.57TPS。 1000000 (1個用戶) (1個完成業務)/24小時/60分鐘/60秒
操作級: 1000000 1 4/24/60/60=46.29 TPS. 1000000* (1個用戶) (4個操作)/24小時/60分鐘/60秒
接口級: 1000000 1 20/24/60/60=231.48TPS 1000000 (1個用戶)*(20個接口)/24小時/60分鐘/60秒
3.峰值時的TPS。 1000人,在1分鐘內完成業務
用戶級TPS:1000 1 1/60=16.67TPS。 1000 (1個用戶) (1個完成業務)/60秒
操作級: 1000 1 4/60=66.67 TPS. 1000* (1個用戶) (4個操作)/60秒
接口級: 1000 1 20/60=333.33TPS 1000 (1個用戶)*(20個接口)/60秒
4,怎麽計算並發用戶數和TPS之間的關系。
假如在jmeter中,完成壹個完整的流程5秒鐘。
用戶級TPS:1 1/5=0.2TPS。 (1個用戶) (1個完成業務)/5s
操作級: 1 4/5=0.8 TPS. (1個用戶) (4個操作)/5s
接口級: 1 20/5=4 TPS (1個用戶) (20個接口)/5s
5,無停頓(並發用戶)相當於多少有停頓的用戶(在線用戶)
0.2/0.01=20. 即無停頓TPS/有停頓TPS。
並發度=1/20*100% =5%
6.壓力線程數
a)100萬在1天內:1000000的在線TPS/並發TPS=11.57/0.2=57.85
b)1000在1分鐘內: 1000的峰值TPS/並發TPS=16.67/0.2=83.35
7.並發用戶數的計算
並發用戶數=在線用戶數×有停頓時間的單線程TPS/無停頓時間的單線程TPS
8.並發度:並發度=並發用戶/在線用戶×100%(取值要在同壹時間段)
1.抽取業務模型,可以通過日誌系統或埋點等手段獲取。
2.業務模型的作用:壹是評估線上的性能;二是為後面的容量測試做準備
也可稱之為混合容量性能場景,即將所有業務根據比例加到壹個場景中,在數據、軟硬件環境、監控等的配合之下,分析瓶頸並調優的過程。
1,業務指標
2,對各業務進行基準性能場景測試,對各業務基線測試,並優化以滿足業務性能指標
3,抽取線上業務模型
4,根據業務模型,編寫執行腳本,進行容量測試
核心就是時長。在長時間的運行之下,觀察系統的性能表現,分析瓶頸並調優的過程
1,根據實際的業務需求設置。如我們每周壹個發布周期,平均2個月所有的業務線會發布壹次(即服務器重啟)。那麽我們的穩定性測試的策略應該是以最大TPS,執行7~30天。不可少於7天。但可以多於30天。
2,為什麽以容量測試的最大TPS? 如果容量測試下來的最大TPS不能穩定執行,其容量測試的結果又什麽意義?