背景:
日常测试工作中出现各式各样性能(CPU、内存、GPU)异常增长导致崩溃,或者功能的异常导致性能飙升对产品产生比较大的影响,对于用户更是直接影响到使用体验。
案例一:4月份研发A引入新功能导致内存泄露流入客户端迭代,导致崩溃、性能占用高
案例二:研发B采集1080p缩放了一次性能(CPU总83.3% ML36.9+17.7% )问题导致丢帧只有10fps左右
案例三:研发C开启intel 解码导致内存增量150-200M
案例四:研发D客户端订阅逻辑出错导致ML CPU占用75-80%左右
案例五:研发E dx采集资源过早初始化导致,GPU桌面窗口管理器占用51.9% 总76%
案例六:编码器内存申请失败后部分资源未进行回收,导致结束共享内存泄露内存增长200多M
这些场景也反馈出性能的问题没有规律可循,目前完全靠个人经验。对于不熟悉产品的测试在迭代工作中更是非常大的挑战
测试目的:
1.针对上述描述场景对于测试人员来说,缺乏测试场景、判断标准,很容易无法感知是否存在性能隐患。以当前现状性能测试形成体系化,有固定的测试方法、从上述出现的场景案例中形成固定的测试场景、以及固定的判断标准等。进行常态化的测试验证做好质量的保障
2.性能指标仅用来描述当前需求涉及到的性能相关项,完整的性能指标请在测试方案里详细阐述。性能指标主要考虑:CPU、GPU、内存、内存带宽、磁盘存储、耗电、发热、耗时(加载速度)等。
前置条件
- 视频会议:
同样的设备、同样的场景(发送分辨率,接收多路)、发送端开麦、远端某一方开麦、关闭降噪
二、共享屏幕:
同样的设备、同样的场景(发送分辨率,接收多路)、开启共享音频、远端某一方开麦、关闭降噪
固件视频源:
- 环境一致性:煲机前后场景需要保持一致。编码和接收的帧率以及分辨率是一样
- 测试前重启设备(建议测试前能先将设备关机静置一段时间散散热 )
考虑因素
一、软编、硬编:
二、机器硬件配置
- 不同系统:
win-7、win-10、win-11
iPhone7以下 、 iPhone7及以上、系统14.2以上软编
(2)芯片:
中高低配置,集显、独显、双显卡等配置要求,还有英伟达、AMD、Intel
因特尔I5、M1
- 不同配置
单屏、双屏、三屏、四屏
(4)不同平台
810、3399、3588
测试设备
一、win设备
二、win-PC:小米-Air M3、RedmiBook Pro 15、华为Matebook-20
华为 Magicbook(AMD)、T470P(英伟达双显卡)
三、安卓设备:小黑屋-810、测试区域-3399、424区域4-810
四、安卓移动:红米K30(硬编)、华为nova6(软编)
五、mac:MacBook pro
六、ios:暂时无法看性能数据(已找客户端测试了解目前没有比较好的办法,Xcode存在误差)
测试方法
- win
任务管理器
二、安卓设备:adb命令连接设备
(1)CPU:
方法一: 系统可用、ML和渲染占用 adb shell busybox top
方法二:adb shell top
(2)内存:
adb shell top
系统总占用和剩余可用
方法一:
adb shell dumpsys meminfo
测试场景
- 视频会议
- 共享屏幕:质量模式、流畅模式
- 极限场景煲机
- 异常场景