從壓力測試說起
壓力測試是確立系統(tǒng)穩(wěn)定性的一種測試方法,通常在系統(tǒng)正常運作范圍之外進行,以考察其功能極限和隱患。與功能測試不同,壓測是以軟件響應(yīng)速度為測試目標(biāo)的,尤其是針對在較短時間內(nèi)大量并發(fā)用戶的訪問時,軟件的抗壓能力。
至于為什么產(chǎn)品或業(yè)務(wù)系統(tǒng)在通過功能測試后還需要進行壓力測試,原因很簡單,因為它重要,為什么重要?眾所周知,響應(yīng)速度是用戶體驗的核心指標(biāo)之一。 SmartBear 數(shù)據(jù)表明,如果 Amazon 的加載時間延長1秒,那么一年就會減少16億美元的營收。用戶與網(wǎng)站互動的過程中,如果加載時間超過3秒,57% 的用戶會流失??梢?,通過壓測來優(yōu)化產(chǎn)品體驗和性能是多么的重要。

壓測1.0 VS 壓測2.0
傳統(tǒng)的壓測方法通常的做法需要準(zhǔn)備大量的環(huán)境,如測試的壓力機,安裝測試工具,錄制測試腳本,對服務(wù)器不斷施加“壓力”,通過這種方式來確定系統(tǒng)的瓶頸或者不能接收的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測試,這個階段我們稱之為壓測1.0。
壓測1.0時代的主流壓測工具有 LoadRunner , SilkPerformer , Ratinal , QA Load , Jmeter 等等, LoadRunner 為傳統(tǒng)壓測1.0時代最主要的代表產(chǎn)品。

圖1.傳統(tǒng)的壓測現(xiàn)狀
傳統(tǒng)的測試方法下很難去做到對整個系統(tǒng)去做一次大型的壓力測試,這種情況下只能把每個系統(tǒng)獨立開來,對他進行性能測試,然后對整個核心系統(tǒng)去做分析,確定系統(tǒng)的短板,對短板進行壓力測試。
通常需要用預(yù)估的方式,業(yè)務(wù)部門估算今年的交易額,應(yīng)用部門估算,網(wǎng)絡(luò)部門估算,基礎(chǔ)架構(gòu)部門估算。最后的結(jié)果就是如果需要1000臺服務(wù)器,那么就準(zhǔn)備1500臺。如果需要5 G 的 CDN 帶寬,那么就準(zhǔn)備7.5 G 。幾乎所有資源都多準(zhǔn)備50%。
壓測1.0時代的壓測缺點很明顯。
- 測試過程緩慢,周期過長
- 并非聚焦于全球客戶的體驗
- 非常昂貴的授權(quán)費用及硬件投入
- 為實驗室測試而設(shè)計,對生產(chǎn)或線上環(huán)境無能為力
- 不能針對當(dāng)今復(fù)雜的應(yīng)用及架構(gòu)提供實時的反饋
基于云計算的全鏈路壓力測試我們稱之為云壓測,這個階段我們叫壓測2.0。云壓測通過遍布云端的壓力模擬服務(wù)器,來制造“真實用戶訪問”,這個過程可以覆蓋到真實交易系統(tǒng)的全鏈路,全業(yè)務(wù)測試系統(tǒng),并且革命性的使用云資源這種輕屬性資產(chǎn),對幾乎來自全世界互聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)的壓力進行測試。云壓測模擬測試完全還原真實用戶網(wǎng)絡(luò)訪問狀況。

圖2.“云壓測+ APM ”進入壓測2.0時代
當(dāng)產(chǎn)生壓測需求時,我們布置在各主流云廠商(AWS、阿里云、Azure、青云、騰訊云、金山云、UCloud等等)的壓測虛機自動下發(fā)壓測腳本,進行云端托管式部署云端壓測機啟動,對用戶系統(tǒng)進行壓測。同步壓測,同步產(chǎn)出壓測數(shù)據(jù)。
利用云計算優(yōu)勢,當(dāng)需要進行模擬大規(guī)模用戶訪問時,只要多開云主機就能實現(xiàn),需要模擬100萬的用戶訪問,再開100臺云主機。
云壓測的準(zhǔn)備時間基本上就是由云主機啟動時間來決定,這在壓測1.0時代是根本不可能實現(xiàn)的。云壓測是在云主機發(fā)起的,因此反映了真實的用戶訪問環(huán)境,而壓測1.0時代的傳統(tǒng)壓測方式則必須在內(nèi)網(wǎng)的模擬環(huán)境下進行。

壓測2.0時代有點同樣明顯。
- 迅速部署
- 實時統(tǒng)計
- 真實世界的規(guī)模和模擬
- 分布式的用戶
- 高效且持續(xù)
- 除去了硬件投入
壓測1.0時代的 LoadRunner VS 云壓測

云壓測 + APM = 端到端的性能優(yōu)化解決方案

圖5.云壓測 + APM 典型應(yīng)用場景
與壓測1.0時代只關(guān)注于后端性能不同,云壓測關(guān)注前端和后端性能,從前端的不同物理位置、不同運營商鏈路、寬帶、窄帶、帶寬、 CDN 、防火墻、負(fù)載均衡,到后端的應(yīng)用軟件、數(shù)據(jù)庫、硬件資源、系統(tǒng)配比等,云壓測在測試環(huán)境中還原真實業(yè)務(wù)環(huán)境。
云壓測和 APM 結(jié)合,全鏈路全業(yè)務(wù)接口壓力測試,全面覆蓋前后端所有環(huán)節(jié)真正實現(xiàn)端到端性能優(yōu)化解決方案,全方位提升用戶體驗。
OneAPM 為更多企業(yè)提供全棧式的性能管理以及 IT 運維管理服務(wù)。閱讀更多文章,請訪問 OneAPM 官方技術(shù)博客