1.性能測試的目的:開發(fā)語言(Java兑凿,phython),操作系統(tǒng)(Linux)茵瘾,數(shù)據(jù)庫(MySQL)礼华,測試工具(Jmeter),網(wǎng)絡知識拗秘,業(yè)務知識(用戶)圣絮。
2.性能測試的分類:
性能測試是一個非常廣泛的概念,包括很多方面的測試雕旨,也可稱為非功能測試扮匠。
自動化測試屬于功能測試范圍,由于其測試方法要求測試人員要有一定的代碼能力凡涩。
具體分類
1棒搜、性能測試:性能測試通常泛指所有類型的性能測試,目標是在特定條件下驗證軟件系統(tǒng)的性能是否達到預期指標的結果活箕。
2力麸、負載測試:負載測試是指模擬真實的用戶行為,通過不斷加壓直到系統(tǒng)性能測試瓶頸或資源達到飽和。負載測試是最常進行的性能測試克蚂,用于測量系統(tǒng)的容量闺鲸,發(fā)現(xiàn)系統(tǒng)瓶頸并配合性能調(diào)優(yōu)。
3埃叭、壓力測試:壓力測試是指測試系統(tǒng)在一定的飽和狀態(tài)下系統(tǒng)的處理能力翠拣。在負載測試的基礎上,繼續(xù)不斷加壓到一定階段游盲。通過壓力測試通過CPU使用率達到75%以上或者內(nèi)存使用率達70%以上(具體的壓力指標也可以是數(shù)據(jù)庫達到相關指標误墓,或者中間件連接數(shù)達到某種指標等等),用于測試系統(tǒng)在壓力環(huán)境下的穩(wěn)定性益缎。
注:許多開發(fā)人員提出測試申請谜慌,說要做一個壓力測試,做為專業(yè)的性能測試人員莺奔,那么需要明確測試需求欣范,開發(fā)人員說的壓力測試,往往不是真正意義上的壓力測試
4令哟、可靠性測試:可靠性測試是指加載一定的業(yè)務壓力恼琼,同時讓壓力持續(xù)運行一段時間,測試系統(tǒng)是否可以穩(wěn)定運行屏富。
5晴竞、并發(fā)測試:并發(fā)測試是模擬用戶在訪問同一應用的測試,用于發(fā)現(xiàn)并發(fā)問題狠半,例如線程鎖噩死、資源爭用、數(shù)據(jù)庫死鎖等神年。
6已维、配置測試:配置測試是指驗證各種配置對系統(tǒng)性能的影響,常用于性能調(diào)優(yōu)和能力規(guī)劃已日。
7垛耳、疲勞強度測試:在系統(tǒng)穩(wěn)定運行情況下,以能夠支持的最大并發(fā)用戶數(shù)或日常運行用戶數(shù)飘千,持續(xù)執(zhí)行業(yè)務操作一段時間堂鲜,通過綜合分析交易執(zhí)行指標和資源監(jiān)控指標,來確定系統(tǒng)處理最大工作強度的性能表現(xiàn)占婉。
8碎紊、大數(shù)據(jù)量測試:大數(shù)據(jù)量測試側重點在于數(shù)據(jù)的量上淫半,包括獨立的數(shù)據(jù)量測試和綜合數(shù)據(jù)量測試慢哈。獨立的數(shù)據(jù)量測試可以理解為某些系統(tǒng)存儲绊汹、傳輸磺箕、統(tǒng)計、查詢等業(yè)務進行大數(shù)據(jù)量測試抛虫,而綜合數(shù)據(jù)量測試一般和壓力測試松靡、負載測試、疲勞強度測試相結合進行建椰。
3.性能測試工作流程:
需求分析-->性能測試指標指定-->腳本開發(fā)-->場景設置(符合用戶)-->監(jiān)控部署-->測試執(zhí)行-->性能分析-->性能調(diào)優(yōu)(畫線反復執(zhí)行).-->測試報告雕欺。
4.常見系統(tǒng)應用分層架構
顯示層(用戶view): web, android, ios, H5
邏輯控制層(controller): Api
數(shù)據(jù)存儲層(model):MySQL(支持事務)MongoDB(文檔存儲)Redis(數(shù)據(jù)存儲在內(nèi)存中,讀寫速度快)...
5.性能測試指標定義:
從客戶端發(fā)起的一個或多個請求(這些請求組成一個完整的操作)棉姐,到客戶端接收到從服務器返回的響應屠列。
(1)事務:一個事務可能多個請求。
(2)TPS:每秒鐘系統(tǒng)能夠處理的事務數(shù) 單位:s(事務數(shù)不一定等于請求數(shù))伞矩。
(3)請求響應時間:
從客戶端發(fā)起的一個請求開始笛洛,到客戶端接收到從服務器返回的響應,整個過程耗費的時間乃坤。
(4)事務響應時間:
事務可能是有一個或多個請求組成的苛让,事務響應時間主要是針對用戶的角度而言,如轉(zhuǎn)賬等湿诊。
(5)并發(fā)定義:
沒有嚴格意義上的并發(fā)狱杰,并發(fā)總有先后,無論差距是1毫秒或者是1微秒厅须,總有一個時間差仿畸,所以并發(fā)講的是一個時間范圍內(nèi),比如一秒內(nèi)九杂。
(6)并發(fā)實例:
多用戶在系統(tǒng)上進行統(tǒng)一操作颁湖,比如雙十一時,大家針對不同商品進行秒殺例隆,或者是大家又進行其它不同的操作,比如商品瀏覽抢蚀。
(7)并發(fā)用戶數(shù):
同一單位時間內(nèi)對系統(tǒng)發(fā)起請求的用戶數(shù)量镀层;
(8)吞吐量:
一次性能測試過程中網(wǎng)絡上傳的數(shù)據(jù)量的總和。
(9)吞吐率:單位時間內(nèi)網(wǎng)絡上傳的數(shù)據(jù)量
(10)點擊率:
每秒種用戶向服務器提交的請求數(shù)皿曲,這個指標是web應用程序特有的一個指標唱逢,可以想象為每秒種用戶總共在頁面上進行多少次點擊動作,但是需要注意的是一次鼠標單擊的操作后屋休,客戶端有可能向服務器發(fā)送了多少次請求坞古。
(11)資源使用率:對不同的系統(tǒng)資源的使用情況,比如CPU劫樟,內(nèi)存痪枫,io
6,性能測試的需求分析:
(1)分析目的 (明確測試指標织堂,明確測試場景)
(2)新系統(tǒng):同行業(yè)比較,業(yè)務預期奶陈。
(3)老系統(tǒng):對比以往的用戶使用行為以及用戶量
7.不同角度的性能表現(xiàn):
(1)用戶角度:響應時間易阳,系統(tǒng)穩(wěn)定性。
(2)系統(tǒng)角度:網(wǎng)絡吃粒,數(shù)據(jù)延遲 系統(tǒng)資源的利用情況潦俺。
(3)開發(fā)角度:代碼的優(yōu)化程度 ,數(shù)據(jù)庫實現(xiàn)的優(yōu)化程度徐勃。
8事示,性能測試流程 :
(1)測試需求分析。
(2)測試計劃制定僻肖。
(3)測試用例設計以及腳本的開發(fā)肖爵。
(4)測試執(zhí)行與監(jiān)控。
(5)測試結果分析和問題定位檐涝。
(6)編寫性能測試報告遏匆。
(7)系統(tǒng)性能優(yōu)化。
(8)性能測試驗證谁榜。
(9)測試總結幅聘。
9,常用工具:
(1)LoadRunner
(2)JMeter