lsekfe 发表于 2021-6-2 11:14:18

直播 APP 后端性能测试思路

 一、概述
  直播 APP 场景中通常包含主播(+辅麦主播)、粉丝 2个主要角色。
  · 主播主要的交互以推流为主,粉丝主要的交互以拉流为主
  · 另外包括粉丝与主播之间的互动,文本消息、表情、送礼物
  直播的中的用户核心性能体验为:主播与粉丝之间的交互延迟,而推流是直播第一步,如果推流不稳定,无论如何优化体验都会非常差。
  二、性能需求
http://www.51testing.com/attachments/2021/05/15326880_2021051015391916aio.png
  三、测试实现
  1)通讯协议
  推、拉流的通讯
  网络层:Socket 或 St 负责传输
  协议层:RTMP 或 HLS 负责网络打包(主播连麦:WebRTC)
  封装层:flv、ts 负责解码数据封装
  编码层:h.264、acc 负责图像、音频压缩
  非推、拉流的通讯
  HTTP、WebSocket
  2)测试工具
http://www.51testing.com/attachments/2021/05/15326880_202105101539291wceM.png
  四、测试策略
  说明:直播类压测的核心是验证并发下推、拉流的顺畅,是协议层的测试。用户体验的关键是和主播之间的交互延迟。
  1)核心角色与业务
  主播 - 直播 - 抓流/推流
  主播 - 互动 - 查看/回应粉丝的互动
  粉丝 - 直播 - 切换直播间
  粉丝 - 直播 - 拉流
  粉丝 - 互动 - 评论、打赏等互动行为
  2)测试用例编写参考
  参考上条,略
  3)测试场景设计关注点
  1、性能基准
  建立性能基准:
  · 对并发推流进行测试
  · 对并发拉流进行测试
  · 对粉丝进入直播间 的首次缓冲延迟(包括:首包用时延迟、视频首帧延迟)进行测试
  · 对特定的码率、帧率所对应带宽开销进行测试
  · 对并发进入直播间时的内容交互加载延迟进行测试
  · 直播间中的主播与粉丝交互延迟
  · 对弱网环境进行不同程度的并发测试
  2、负载测试
  · 关注日度业务峰值负载(业务量、时间、时长)
  · 关注周/月中业务峰值负载(业务量、时间、时长)
  · 关注运营推广过程中所涉及的业务负载(业务量、时间、时长)
  · 关注意外负载 的出现时机、负载特点
  3、容量测试
  基于“性能基准”结果,参考:1000 - 2000 - 3000 - XXXX 的方式进行主播递增推流测试
  · 关注良好性能体验条件下的最高支持在线主播数量
  · 关注可容忍上限条件下的最高支持在线主播数量
  · 关注系统资源充裕条件下的最高在线主播数量
  · 关注系统资源不足条件下的最高在线主播数量
  4、可用性测试
  · 以施加峰值负载的方式达到考核时间周期的业务量
  5、可靠性测试
  · 关注网络异常/弱网环境对性能基准的影响
   ·关注服务异常对性能基准的影响
  · 关注冗余节点随机的上、下线对性能基准的影响
  · 关注冗余节点随机的上、下线对:功能可用性、事务性、性能、持久化设计 的影响
  6、资源规划 / 扩容配置
  · 关注核心业务在性能上横向扩容过程中,节点增加与性能削减的关系
  · 关注主播推流对服务产生的存储空间占用开销
  · 关注主播推流对服务产生的带宽占用开销
  4)测试场景设计
  (参考产品设计 与“测试场景设计关注点”:略)
http://www.51testing.com/attachments/2021/05/15326880_202105101539391PSRz.png
  五、备注
  脚本需要实现粉丝端首次缓冲时间的延迟测试,即对首包、首帧画面的断言、延迟、丢帧判断测试。
页: [1]
查看完整版本: 直播 APP 后端性能测试思路