全鏈路壓測分析
原創(chuàng)來源于軟件測試架構(gòu)師俱樂部,作者cctester
最近網(wǎng)傳,微信支付崩了,哈羅出了問題,部分公司性能測試架構(gòu)師招聘又開始火熱起來,現(xiàn)在都叫做全鏈路壓測,那什么是全鏈路壓測呢,跟傳統(tǒng)壓測區(qū)別是啥呢?全鏈路最早是阿里提出來的,在2012年的雙11,零點的時候,系統(tǒng)交易成功率不足50%,下單報錯,購物車報錯,并伴隨著大量超賣,后來提出了全鏈路壓測,這篇文章就來聊聊全鏈路壓測的關(guān)鍵點。
面試過很多公司,性能測試有很多形態(tài),一般的公司還在工具使用階段,做下簡單的監(jiān)控,然后出報告,結(jié)束,這樣的做法基本就是走個形式,也有的開發(fā)團隊相對負責,會在壓測的過程中協(xié)助診斷,看看有沒有優(yōu)化點,一般來說多少會發(fā)現(xiàn)一些問題,會有些效果,但是往往大促,又會出現(xiàn)其他問題,leader問不是做過壓測了嗎?你覺得做過,但好像又做得不夠.....
1.什么是線上全鏈路性能測試:
基于真實的用戶場景,實際線上環(huán)境,按照既定流量,對各個業(yè)務(wù)鏈路進行壓力測試的過程。
2.為什么要做全鏈路性能測試:
很多公司有線下性能測試,為啥還要做全鏈路呢,能解決一般性能測試的什么問題呢?我認為在每個環(huán)境做性能測試是相互補充的過程,在線下的性能測試,由于機器監(jiān)控,部署迅速以及相應(yīng)的權(quán)限充足,我們可以迅速定位到一些性能bug,如內(nèi)存泄漏,死鎖,超賣等問題,但是線下的機器達到的指標不能準確的反饋到線上的實際情況,我們并不能簡單通過一些充滿大量經(jīng)驗值的公式去推算,這樣的結(jié)果和拍腦袋也沒啥太大差異,再加上線下環(huán)境大多以分鏈路,模塊壓測為主,所以全鏈路壓測在這樣的背景下就誕生了,我們的前提是在線下已經(jīng)模塊壓測完成,無明顯瓶頸的情況下開展,在線上進行鏈路的充分模擬壓測。
3.全鏈路壓測的核心是什么?
無論何種測試,核心的東西一定是需求分析,那全鏈路性能需求分析的要點是啥呢,和傳統(tǒng)線下性能測試有啥區(qū)別呢?
請求數(shù)據(jù)源:
在傳統(tǒng)線下性能測試,一般我們拿到接口參數(shù)便開始調(diào)試,寫腳本,按照場景進行測試,而線上我們需要根據(jù)實際數(shù)據(jù)源統(tǒng)計,包含web端,app端,小程序端等,這個是我們的客戶端數(shù)據(jù)來源,還有我們的運營商帶寬占用情況,cdn節(jié)點的分布,這樣就涉及到外網(wǎng)的壓測,外網(wǎng)的壓測策略和內(nèi)網(wǎng)細節(jié)上的差別還是比較大的,本文不作具體討論。
架構(gòu)拓撲分析:
線上的部署結(jié)構(gòu)往往比我們測試環(huán)境要復雜很多,測試環(huán)境往往是線上很小的一個分支,線上各種微服務(wù)的依賴集群,中間件,db需要調(diào)研的非常清楚,多少服務(wù)器,服務(wù)器上部署實例的情況,每個細節(jié)都會影響到壓測的結(jié)果,以及分析的準確性。

數(shù)據(jù)分析:
數(shù)據(jù)分析可以分很多層次,在一般的性能壓測中,我們一般會關(guān)注參數(shù)化數(shù)據(jù)和db數(shù)據(jù),全鏈路壓測中,還需要關(guān)注,redis數(shù)據(jù),mq堆積,以及key的大小對實際帶寬的影響,這些都跟中間件相關(guān),一旦出現(xiàn)問題,對網(wǎng)站的影響往往是毀滅性的,帶寬這塊往往也是線下局域網(wǎng)測試不能覆蓋的,線上會跨機房調(diào)用,所以尤其需要關(guān)注這塊。
監(jiān)控分析:
大多是情況下,我們會做硬件層的監(jiān)控包括cpu,帶寬,內(nèi)存,磁盤等,然后客戶端進行數(shù)據(jù)采集,指標一般也通過壓測數(shù)據(jù)采集,但這些在全鏈路壓測中還是顯得還有基礎(chǔ),我們需要去通過更多服務(wù)器維度監(jiān)控,包含各服務(wù)集群的業(yè)務(wù)指標數(shù)據(jù),db層的實時下單數(shù)據(jù),容器級別資源監(jiān)控數(shù)據(jù)等內(nèi)容,以及結(jié)合健康度指標等,在線上壓測需要設(shè)置閾值,盡可能規(guī)避線上風險,防止造成用戶流失。
壓測目標的設(shè)定:
我們很多公司在線下壓測的時候因無參考數(shù)據(jù),可能壓到拐點作為首選目標,而成熟的互聯(lián)網(wǎng)公司一定會做線上的容量評估,一般會根據(jù)以往業(yè)績以及流量相結(jié)合,會有一定比例增長的預估,還有通過推送轉(zhuǎn)化率去評估,個人覺得可以長期做模型去進行數(shù)據(jù)積累,達到經(jīng)驗值的參考。
流量回放:
首先來說,能做到流量回放的公司很少,這個涉及到系統(tǒng)的改造,關(guān)鍵在于數(shù)據(jù)加工這塊,能達到流量回放,測試的很多前期準備工作會少很多,但同時前期的開發(fā)改造任務(wù)也非常繁重,在阿里也一個開發(fā)團隊封閉改造三個月才有一個雛形版本,任何一家公司都可以引用一種技術(shù)類型,但是做的深淺會很不一樣。
本文分享自微信公眾號 - 工程師的自我修養(yǎng)之路(Engineer_Way)
原文出處及轉(zhuǎn)載信息見文內(nèi)詳細說明,如有侵權(quán),請聯(lián)系 hellolonewolf@163.com 刪除。

浙公網(wǎng)安備 33010602011771號