即時通訊 APP 后端性能測試思路


即時通訊 APP 后端性能測試思路

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

一、概述

常見的即時聊天APP通常包含 即時通訊(IM)實時通訊(RTC) 兩種場景的功能實現

  • 即時通訊 指文字聊天、語音消息發送、文件傳輸、附件發送,數據路徑:C->S->C 或 S->C 或 C->S
  • 實時通訊 指語音、視頻電話會議
  • 即時通訊 對消息送達率相對更敏感,寧可延遲,不可丟包(文本消息是可以稍微延遲送達的,但是不能丟失)
  • 實時通訊 則對消息延遲相對更敏感,寧可丟包,不可延遲(語音畫面是允許掉幀的,但是畫面和語音總是延遲就沒法正常對話了)

二、性能需求

關鍵角色 性能體驗
用戶視角1(即時通訊) 連接延遲和穩定性、消息送達率、消息發送延遲
用戶視角2(實時通訊) 會話連接的延遲、會話建立的延遲、語音畫面的延遲、語音畫面丟幀
用戶視角3(其它功能) 注冊登錄、拉取通訊錄、個性化內容加載、掃碼識別 等
運維視角 針對於同時支持會話數的橫向擴容、即時通訊過程產生的內容存儲、確保即時通訊可靠性的多線機房
開發視角 核心業務接口的QPS、核心業務的TPS
運營視角 線下推廣 與 線上推廣 所涉及主要功能場景:注冊、登錄、添加好友 等

三、測試實現

1)通訊協議

  • 為了滿足 即時通訊 對送達率和連接穩定性的這個更高優先級的需求,通常采用 TCP 協議,如 MQTT、XMPP
  • 實時通訊 中,偶爾的畫面卡頓、丟包是可接受的,但延遲要求較高,因此通常采用 UDP 協議,如 WebRTC

2)測試工具

工具 支持協議 說明
Locust 自帶 HTTP Client,其它協議需自行實現 Client 采用(單進程)協程+IO復用實現並發負載
Jmeter / 采用多線程實現並發負載

四、測試策略

說明:本質上是圍繞 建立連接的延遲、連接穩定性、數據報文延遲、數據報文送達率 的測試。

1)核心角色與業務

即時通訊

角色 業務類型 前置條件 備注
用戶 私聊:一對一文本消息收發 雙方在線(C->S->C)
用戶 私聊:一對一文本消息收發 單方在線(先 C->S 后 S->C)
用戶 群聊:一對多文本消息收發 部分在線 & 全員在線
用戶 私聊:一對一附件消息收發 單、雙方在線(均為:先C->S 后 S->C)
用戶 群聊:一對多附件消息收發 部分在線 & 全員在線
用戶 離線消息收取 /

實時通訊

  • 語音通話 & 語音+視頻通話:參考“即時通訊”

其它功能

  • 用戶 的 線上交互場景:注冊、登錄、添加好友 等
  • 用戶 的 線下交互場景:錢包、卡包、積分、憑證展示 等
  • ……(其它參考產品設計)

2)測試用例編寫參考

用戶角色

  • 用戶登錄:身份驗證、通訊錄列表加載(聯系人信息、狀態、數量)、個性化內容加載
  • 消息收、發(私聊):短文本、長文本、圖片、文件、鏈接等其它分享
  • 消息收、發(群聊)
  • 離線消息收取
  • 附件收、發
  • 用戶注冊、登錄
  • 添加好友 / 加入群聊

風控、客服 等管理運營角色

  • 略(參考產品設計)

3)測試場景設計關注點

0、業務配比

  • 對文本、消息、語音、語音+視頻的業務配比,參考日度業務量、支持連接的需求進行正確估算配置

1、性能基准

  • 對 連接 的 最高支持數量、建立延遲、穩定性、連接建立TPS 進行測試
  • 對 消息 的 TPS、送達延遲、送達率 進行測試
  • 對 版本迭代 中的性能優化前后的基准數據進行比較

2、負載測試

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

3、容量測試

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

4、可用性測試

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

5、可靠性測試

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

6、資源規划 / 擴容配置

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

4)測試場景設計

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

測試場景 場景描述 場景目標 執行策略 期望結果
性能基准測試
負載測試
容量測試
可用性測試
可靠性測試
……

五、備注

腳本需要實現 文本消息發送 和 文本消息送達 的斷言、延遲、送達率測試。


免責聲明!

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



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