壓測實戰 | 記錄一次元旦跨年夜的測試保障
使用者的跨年夜,技術人的驚魂夜。
在網際網路多媒體時代,圖片、影片等型別的應用越來越豐富,一些特殊時刻,會有海量使用者同時釋出多媒體內容。以大家熟知的一個社交類應用為例,因其社交性、高併發、瞬時峰值的特點,在元旦零點前後的跨年時刻,讀/寫流量可達平日的 10 至 20 倍,迎來全年巔峰。
專案背景
前面提到的社交軟體,其元旦和春節期間讀鏈路和寫鏈路分不同會數倍的流量飆升。其中,針對只讀鏈路可以透過叢集流量排程做到讀鏈路的壓測,但是寫鏈路的壓測由於測試資料構造複雜,用例編寫成本高,是一個亟待解決的問題。
壓測目標
在這次任務中,業務鏈路壓測的特點是請求鏈路較短,只涉及兩個請求,而難點則集中在以下方面:
●協議多,包含 HTTP、RPC 以及其他私有協議;
●業務是多地分佈的,需支援分散式、多地域壓測流量定製;
●模擬跨年零點,流量大、時間集中,需快速模擬大規模使用者進行寫操作;
●需支援請求上下文引數動態串聯,模擬使用者登入後,以登入態進行後續操作;
●需支援自定義資料處理,在指令碼邏輯裡對測試資料資料進行清洗;
●除了文字內容,還需模擬圖片內容的發表,並保證帶圖發壓也能瞬時達峰;
●需能設定檢查點,根據介面返回值,按照業務邏輯檢查介面呼叫成功與否;
●元旦保障時間緊任務重,壓測工具需能開箱即用、快速編排場景、易於分析結果。
壓測方法
為了 100% 滿足上述需求和目標,具體的實施方法如下:
1.選擇建立模式,本次壓測採用指令碼模式;
2.上傳包含相關測試資料的 csv 檔案,並設定切分檔案由不同施壓機並行讀取;
3.上傳所依賴的協議檔案;
4.上傳被測介面所需的圖片檔案;
5.施壓配置併發、多地域流量定製、梯度發壓;
6.參考平臺提供的指令碼模板,編寫請求鏈路,並藉助協議支援、資料處理等 API,完成指令碼邏輯;
7.藉助平臺設定檢查點的 API,檢查介面返回值,按業務邏輯判斷介面呼叫成功與否。
壓力配置頁面(演示資料):
結果分析
在 2 天內我們共進行了 8 輪次壓測,逐步增加壓力、增大地域覆蓋。透過壓測平臺提供的指標數值、多維度圖表、服務明細、檢查點明細、日誌等資訊,分析系統在不同壓力程度下的錯誤率、延時等效能表現,並結合業務自身監控指標的變化,判斷業務的可用性和穩定性是否達到預期、或反映出哪些需要解決的問題。
在壓測報告中,我們重點關注的指標如下:
●VU:虛擬使用者數,用來模擬真實場景中同時執行操作的使用者數量,也叫 “併發使用者數”
●RPS:每秒請求數,反映系統處理能力,越大越好
●響應時間:從客戶端傳送請求到客戶端接到伺服器返回的時間
●失敗率:一批請求中結果出錯的請求所佔比例,以校驗響應結果是否符合期望
壓測報告介面(演示資料):
工具選擇
在工具側的選擇上使用的是騰訊旗下的一款工具—優測壓力測試平臺,以同時滿足的多地域、百萬併發、多協議支援的要求。另外,基於專案週期的緊迫性,該工具 SaaS 化和開箱即用的模式也很好地滿足了時間和成本的需求。
相關文章
- 一次壓測實戰的覆盤
- 記一次測試環境壓測問題深究
- 記錄一下效能測試實戰
- 記錄一次測開面試題記錄面試題
- 實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰APP
- 記錄一次餘額遷移的坑(測試角度)
- 單元測試 - 測試場景記錄
- 用雲壓力測試工具,如何完成一次測試任務
- 一次資料庫壓力測試的故事資料庫
- 記一次 Boomer 壓測 MQTT 過程OOMMQQT
- 記一次CVE實戰挖掘記錄
- 記錄一次較為完整伺服器效能測試伺服器
- 記一次 JMeter 壓測 HTTPS 效能問題JMeterHTTP
- 跨瀏覽器測試需要面臨哪些挑戰?跨瀏覽器測試工具分享瀏覽器
- go實現的壓測工具【單臺機器100w連線壓測實戰】Go
- (一)效能測試(壓力測試、負載測試)負載
- 壓測平臺 - 記錄一次百億級資料查詢最佳化
- 壓力測試
- 一個 Golang 專案的測試實踐全記錄Golang
- 有贊全鏈路壓測實戰
- Jmeter效能測試實戰JMeter
- 記一次由sql注入到拿下域控的滲透測試實戰演練(下)SQL
- 記一次難忘的滲透測試
- 介面測試,負載測試,併發測試,壓力測試區別負載
- 軟體測試專案實戰之功能測試 千鋒實戰教程
- 5. 堪比JMeter的.Net壓測工具 - Crank 實戰篇 - 介面以及場景壓測JMeter
- 經驗分享丨功能測試漲薪路線,記一次簡單的效能測試實踐!
- RestCloud測試平臺,支援壓力測試RESTCloud
- TestComplete資料驅動測試教程(三)——修改記錄測試
- 介面壓測實踐-壓力測試常見引數解釋說明
- 滲透測試學習記錄
- 疫情期間測試工程師的記錄工程師
- 一次效能壓測及分析調優實踐
- sysbench 壓力測試
- MACOSXApacheab壓力測試MacApache
- ORACLE壓力測試Oracle
- laravel壓力測試Laravel
- 介面高併發壓測入門實戰
- 開源的負載測試/壓力測試工具 NBomber負載