直播 APP 后端性能測試思路


直播 APP 后端性能測試思路

原創發布:https://www.cnblogs.com/huanghaopeng/
作者信息:HHP

一、概述

直播 APP 場景中通常包含主播(+輔麥主播)、粉絲 2個主要角色

  • 主播主要的交互以推流為主,粉絲主要的交互以拉流為主
  • 另外包括粉絲與主播之間的互動,文本消息、表情、送禮物

直播的中的用戶核心性能體驗為:主播與粉絲之間的交互延遲,而推流是直播第一步,如果推流不穩定,無論如何優化體驗都會非常差。

二、性能需求

關鍵角色 性能體驗
用戶視角 第一個畫面加載延遲(首次緩沖)、直播畫面延遲、卡頓、弱網體驗、流量消耗
運維視角 CDN、帶寬開銷、核心業務的橫向擴容能力、(政策原因)對流媒體進行存儲產生的存儲空間開銷
開發視角 延遲和卡頓的平衡(客戶端緩存)
運營視角 /

三、測試實現

1)通訊協議

推、拉流的通訊

  • 網絡層:Socket 或 St 負責傳輸
  • 協議層:RTMP 或 HLS 負責網絡打包(主播連麥:WebRTC)
  • 封裝層:flv、ts 負責解碼數據封裝
  • 編碼層:h.264、acc 負責圖像、音頻壓縮

非推、拉流的通訊

  • HTTP、WebSocket

2)測試工具

工具 支持協議 說明
St-load RTMP (Linux)通過模擬並發的推拉流實現特定負載的測試
Locust 自帶 HTTP Client,其它協議需自行實現 Client 采用(單進程)協程+IO復用實現並發負載

四、測試策略

說明:直播類壓測的核心是驗證並發下推、拉流的順暢,是協議層的測試。用戶體驗的關鍵是和主播之間的交互延遲。

1)核心角色與業務

  • 主播 - 直播 - 抓流/推流
  • 主播 - 互動 - 查看/回應粉絲的互動
  • 粉絲 - 直播 - 切換直播間
  • 粉絲 - 直播 - 拉流
  • 粉絲 - 互動 - 評論、打賞等互動行為

2)測試用例編寫參考

  • 參考上條,略

3)測試場景設計關注點

1、性能基准

建立性能基准

  • 對 並發推流 進行測試
  • 對 並發拉流 進行測試
  • 對 粉絲 進入直播間 的首次緩沖延遲(包括:首包用時延遲、視頻首幀延遲) 進行測試
  • 對 特定的 碼率、幀率 所對應帶寬開銷進行測試
  • 對並發 進入直播間 時的內容交互加載延遲進行測試
  • 直播間中的主播與粉絲交互延遲
  • 對 弱網環境 進行不同程度的並發測試

2、負載測試

  • 關注 日度 業務峰值負載(業務量、時間、時長)
  • 關注 周/月 中業務峰值負載(業務量、時間、時長)
  • 關注 運營推廣 過程中所涉及的業務負載(業務量、時間、時長)
  • 關注 意外負載 的出現時機、負載特點

3、容量測試

  • 基於“性能基准”結果,參考:1000 - 2000 - 3000 - XXXX 的方式進行主播遞增推流測試
  • 關注 良好性能體驗 條件下的最高支持在線主播數量
  • 關注 可容忍上限 條件下的最高支持在線主播數量
  • 關注 系統資源充裕 條件下的最高在線主播數量
  • 關注 系統資源不足 條件下的最高在線主播數量

4、可用性測試

  • 以施加峰值負載的方式達到考核時間周期的業務量

5、可靠性測試

  • 關注 網絡異常 / 弱網環境 對性能基准的影響
  • 關注 服務異常 對性能基准的影響
  • 關注 冗余節點 隨機的上、下線對性能基准的影響
  • 關注 冗余節點 隨機的上、下線對:功能可用性、事務性、性能、持久化設計 的影響

6、資源規划 / 擴容配置

  • 關注核心業務在性能上橫向擴容過程中,節點增加與性能削減的關系
  • 關注主播推流對服務產生的存儲空間占用開銷
  • 關注主播推流對服務產生的帶寬占用開銷

4)測試場景設計

(參考產品設計 與“測試場景設計關注點”:略)

測試場景 場景描述 場景目標 執行策略 期望結果
性能基准測試
負載測試(推、拉流)
負載測試(HTTP、WS流)
容量測試
可用性測試
可靠性測試
……

五、備注

  • 腳本需要實現粉絲端首次緩沖時間的延遲測試,即對首包、首幀畫面的斷言、延遲、丟幀判斷測試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM