當(dāng)前位置:澤眾軟件測試網(wǎng)- 技術(shù)文章 -正文

壓力測試與過程分析

發(fā)布時(shí)間:2020-09-24

壓力測試,也叫做性能測試,中文好像不太區(qū)分。負(fù)載測試,更多的是測試系統(tǒng)在長時(shí)間比較大的壓力下的健康狀況。
 
當(dāng)一個(gè)應(yīng)用系統(tǒng)需求被提出,就需要確定性能需求,即:需要給多少人同時(shí)來使用,就是多少人可以同時(shí)在線;平均響應(yīng)時(shí)間有多長;每秒通過的交易(transaction)個(gè)數(shù)有多少;需要的網(wǎng)絡(luò)帶寬有多大等等。
 
系統(tǒng)設(shè)計(jì),就需要遵循性能需求,進(jìn)行性能架構(gòu)設(shè)計(jì)。比如,是否使用集群、雙機(jī)熱備、N+1等模式。當(dāng)然,隨著兩地三中心的模式,也需要充分考慮到性能需求和性能架構(gòu)設(shè)計(jì)的要求。
 
決定性能的要素,包括了:性能需求、性能架構(gòu)與設(shè)計(jì)、代碼實(shí)現(xiàn)幾個(gè)部分。
 
性能架構(gòu),很多系統(tǒng)都是分成不同的層,以及不同的業(yè)務(wù)組件來實(shí)現(xiàn)具體的應(yīng)用,一般而言包括了交易處理層、業(yè)務(wù)組件層、數(shù)據(jù)庫服務(wù)層三個(gè)大的部分。當(dāng)系統(tǒng)的性能出現(xiàn)問題,我們就需要知道,
 
壓力測試
 
上圖是一個(gè)比較簡單的架構(gòu)。當(dāng)系統(tǒng)的性能達(dá)不到要求,我們就要分析問題出在哪一層上。分析在哪一層,最簡單的方法,就是分析業(yè)務(wù)流量路徑圖:
 
壓力測試
 
根據(jù)業(yè)務(wù)流量的路徑,對每個(gè)層進(jìn)行性能數(shù)據(jù)監(jiān)控,得到每個(gè)模塊被調(diào)用的次數(shù),以及響應(yīng)時(shí)間的數(shù)據(jù),從而分析獲得性能瓶頸。
 
隨著業(yè)務(wù)的復(fù)雜度提升,系統(tǒng)架構(gòu)也日益復(fù)雜,出現(xiàn)了微服務(wù)或者很多跨系統(tǒng)的業(yè)務(wù)場景:
 
壓力測試
 
如上圖,就需要對外系統(tǒng)或者調(diào)用外系統(tǒng)的接口服務(wù)進(jìn)行監(jiān)控,獲得監(jiān)控?cái)?shù)據(jù)。
 
獲得監(jiān)控?cái)?shù)據(jù)之后,就需要對可疑的數(shù)據(jù)進(jìn)行分析。什么是可疑的數(shù)據(jù)?就是按照正常的情況,不應(yīng)該出現(xiàn)的性能曲線,比如數(shù)據(jù)庫sql語句執(zhí)行突然緩慢(隨著數(shù)據(jù)量的增加),交易響應(yīng)時(shí)間突然變長,但是cpu卻沒有大幅度增加等等。
 
壓力測試
 
如上圖,是TPS隨時(shí)間變化的趨勢圖。隨著時(shí)間的變化,客戶端發(fā)起的壓力逐步上升,當(dāng)上升到一等幅度之后,突然開始震動和下降,出現(xiàn)了性能瓶頸。
 
最后,我們來說一下加壓。加壓就是模仿客戶端,生成持續(xù)的交易請求,向系統(tǒng)加壓。
 
壓力測試
 
如上圖,我們采用PerformanceRunne性能測試工具r的架構(gòu)圖,來展示如何產(chǎn)生壓力:
PR的節(jié)點(diǎn)管理器,負(fù)責(zé)管理多個(gè)虛擬機(jī)或者實(shí)體機(jī),在實(shí)體機(jī)上會通過多進(jìn)程和多線程來模擬用戶請求。
模擬用戶請求的方式是采用測試腳本來模擬發(fā)起報(bào)文和接收響應(yīng)報(bào)文:
 
壓力測試
 
簡單的協(xié)議,比如http、https、socket等,可以通過錄制來獲得測試腳本,對于復(fù)雜的協(xié)議或者通訊中間件,比如MQ、tuxedo、cics等,就無法通過錄制來獲得,就需要手工編寫測試腳本。
 
腳本編寫完成,我們需要對腳本進(jìn)行參數(shù)化,以實(shí)現(xiàn)加壓的時(shí)候,產(chǎn)生壓力的數(shù)據(jù)是不同的,從而模擬更真實(shí)的應(yīng)用場景:
 
壓力測試
 
針對具體的統(tǒng)計(jì)口徑和業(yè)務(wù)相關(guān)性,例如:當(dāng)我們通過瀏覽器頁面登錄到一個(gè)系統(tǒng),一般而言,登錄是一個(gè)服務(wù),登錄完成之后,會請求用戶桌面上的各個(gè)數(shù)據(jù),或者儀表盤信息,是另外的請求。在產(chǎn)生壓力和統(tǒng)計(jì)的時(shí)候,我們需要把這兩個(gè)或者多個(gè),組合在一起,變成一個(gè)交易(transaction),tps的數(shù)據(jù)也是統(tǒng)計(jì)交易的數(shù)據(jù),這樣避免了編寫的測試腳本和真實(shí)的壓力效果不同,如下圖:
 
壓力測試
 
性能測試腳本創(chuàng)建完成,我們就可以根據(jù)具體的業(yè)務(wù)場景來加壓了。一個(gè)業(yè)務(wù)場景,可以對應(yīng)一個(gè)或者多個(gè)測試腳本。
壓力產(chǎn)生策略。我們可以選擇逐步梯度增加并發(fā)個(gè)數(shù)(VU虛擬用戶),來逐步產(chǎn)生壓力,發(fā)現(xiàn)加壓到某個(gè)壓力的時(shí)候,會出現(xiàn)性能瓶頸。
性能測試工具,對各個(gè)節(jié)點(diǎn)進(jìn)行監(jiān)控,產(chǎn)生性能監(jiān)控?cái)?shù)據(jù):
 
壓力測試
 
壓力測試
 
推薦閱讀:
 
本文內(nèi)容不用于商業(yè)目的,如涉及知識產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測試工具和測試服務(wù)

微信客服
問題
反饋
產(chǎn)品
畫冊

掃描二維碼下載澤眾軟件企業(yè)宣傳冊

產(chǎn)品畫冊
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會與您聯(lián)系