什么是性能測試
我們常常聽說什么性能測試、壓力測試、負載測試等等,他們直接的關(guān)系是什么呢?
壓力測試
定義:
長時間連續(xù)運行,增加超負荷(并發(fā),循環(huán)操作,多用戶),什么時候系統(tǒng)會產(chǎn)生異常,以及異常處理能力,驗證系統(tǒng)可靠性,找出瓶頸所在。
注意:壓力測試中的長時間運行;
目標:
壓力測試注重的是系統(tǒng)長時間運行,給系統(tǒng)造成的影響
負載測試
定義:
一個很短時間內(nèi),處理一個巨大的數(shù)據(jù)量或執(zhí)行許多功能調(diào)用上的能力,驗證系統(tǒng)預(yù)期的性能目標,響應(yīng)時間等。
注意:負載測試是測試不同負載情況下,系統(tǒng)的性能指標
目標:
測試在不同負載情況下系統(tǒng)性能(不關(guān)注穩(wěn)定性,也就是說不關(guān)注長時間運行,只是得到不同負載下相關(guān)性能指標即可)
容量測試
定義
確定系統(tǒng)可處理同時在線的最大用戶數(shù)
注意:容量測試,通常和數(shù)據(jù)庫有關(guān)
容量和負載的區(qū)別在于:
容量關(guān)注的是大容量,而不需要表現(xiàn)實際的使用。
為什么做性能測試
目的
根據(jù)需求分析,可以協(xié)同產(chǎn)品、開發(fā)人員一起討論
背景
了解業(yè)務(wù)背景,可以和產(chǎn)品經(jīng)理溝通
如何做性能測試
準備工作
1、明確目的;
--- 測試的目的,為什么進行這次性能測試,是為了調(diào)優(yōu)還是為了驗證系統(tǒng)是否達標抑或是明確當前系統(tǒng)最大的并發(fā)
2、了解業(yè)務(wù)背景;
--- 明確對應(yīng)的背景,數(shù)據(jù)量的增長有多大,使用的人員是哪些,對應(yīng)人員的增長幅度是多大,什么時候投入使用,最常被使用的功能是什么
3、同產(chǎn)品、開發(fā)一起討論,確定業(yè)務(wù)場景;
--- 根據(jù)業(yè)務(wù)背景,明確測試的業(yè)務(wù)場景,根據(jù)產(chǎn)品建議,選擇最重要做常用的優(yōu)先,根據(jù)開發(fā)建議選擇比較容易出問題的場景驗證
4、明確測試目標;
---- 測試目標其實是和測試目的一起的,在知道對應(yīng)的目的后,需要確立目標,即完成目標,到什么時候為止;一般是參考需求說明,或者是測試前,大家先根據(jù)經(jīng)驗先制定一個經(jīng)驗值,達到這個值才可以停止測試。
5、準備測試數(shù)據(jù);
--- 數(shù)據(jù)量的大小根據(jù)本次的業(yè)務(wù)場景,比如需要測試某查詢功能,這時需要有一定的數(shù)據(jù)量支撐;或是并發(fā)1000,需要有1000個并發(fā)用戶,對應(yīng)的數(shù)據(jù)已經(jīng)用戶數(shù)據(jù)需要提前準備;
--- 建議大家在準備好數(shù)據(jù)后,進行一次備份,避免后續(xù)需要重復(fù)造數(shù)據(jù);
6、編寫測試腳本、調(diào)試;
--- 目的保證腳本正常運行;
--- 參數(shù)化數(shù)據(jù)可以正常使用;
7、明確測試環(huán)境;
--- 環(huán)境的地址;
--- 環(huán)境的配置;
8、了解測試場景對應(yīng)的鏈路;
--- 需要開發(fā)協(xié)助,提供或者輔助測試同學(xué)畫出對應(yīng)的鏈路;
9、明確對應(yīng)服務(wù)部署
--- 測試的服務(wù)部署在哪臺機器上;
--- 每臺機器上部署的有哪些服務(wù);

過程監(jiān)控
執(zhí)行腳本
以jmeter為例
使用非gui模式運行,不要通過界面直接壓測
選擇好監(jiān)控工具
不建議使用壓力工具自帶的監(jiān)控工具
數(shù)據(jù)分析
系統(tǒng)數(shù)據(jù)分析
服務(wù)器數(shù)據(jù)分析
兩者數(shù)據(jù)結(jié)合的分析
數(shù)據(jù)分析,注意數(shù)據(jù)的變化而不是數(shù)據(jù)的大小。
性能測試套路

性能測試基礎(chǔ)知識點:
cpu上下文切換 :


cpu負載:
