性能测试之PerfDog
一、APP性能测试背景
-
在任何软件的测试过程中,性能测试都是一个很重要的环节。我们一般所说的性能测试分为客户端及服务器端。针对客户端性能测试,尤其像游戏、视频类的软件,比如玩游戏不断卡顿、看视频电量消耗极快,都直接影响了用户体验。
-
对于性能测试的需求,主要来源于行业的通用标准,竞品的参考数据,历史版本的测试数据,或是直接的客户反馈等。App性能测试指标主要包括:响应、内存、CPU 、FPS、GPU渲染、耗电、耗流等。
-
APP性能测试的基本原理是在不同用户操作场景下通过监控APP的各项指标来识别和发现APP存在的代码质量问题并对程序进行修正和优化。
二、APP性能评测标准
- Android开发阶段性能评测标准(数据来源腾讯WeTest,供参考)
- Android现网性能评测标准(数据来源腾讯WeTest,供参考)
- iOS开发阶段性能评测标准(数据来源腾讯WeTest,供参考)
- iOS现网性能评测标准(数据来源腾讯WeTest,供参考)
三、APP性能测试工具对比
APP性能测试指标数据获取,可通过adb工具、集成的SDK工具及第三方工具。主流的第三方工具包括Emmagee、itest、GT及PerfDog。Emmagee、itest目前仅支持android系统,而GT、PerfDog对于android、ios系统都支持。这两款工具都由腾讯公司开发,而PerfDog由腾讯游戏部门开发,性能指标要求比一般的app应用测试要求更加严苛。
四、PerfDog介绍
PerfDog(性能狗)是腾讯WeTest平台推出的一款针对移动平台的客户端性能测试工具。帮助开发者快速定位分析性能问题,提升APP应用及游戏性能和品质。PerfDog官网文档
-
PerfDog移动全平台iOS/Android性能测试、分析工具平台。快速定位分析性能问题,提升APP应用及游戏性能和品质。手机无需ROOT/越狱,手机硬件、游戏及应用APP也无需做任何修改,极简化即插即用。
-
PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android模拟器、云真机等性能测试。支持APP多进程测试(如Android多子进程及iOS扩展进程APP Extension)。
-
Windows & Mac OS X平台PerfDog桌面应用程序版本都支持对iOS和Android设备进行测试。PC上PerfDog可多开,单PC可同时测试多台手机。
五、PerfDog安装及运行
1. PerfDog下载安装
b、注册完成后,下载自己电脑对应系统的版本并安装
Windows平台:解压下载包,双击打开PerfDog.exe桌面应用程序。
Mac平台:直接运行dmg桌面应用程序。
c、安装后用注册好的用户信息进行PC客户端登录
登录之后,进入PerfDog主页:
2. 手机连接电脑
用USB连接电脑,连接后,PerfDog会自动检测添加手机到应用列表。
ios: 需手机信任电脑,弹框选择信任。
Android: 提供非安装模式和安装模式。(注:请开启手机USB调试模式及允许USB应用安装)
a. 非安装模式:手机即插即用,无需任何设置及安装,使用非常简单,但手机屏幕上没有实时性能数据显示。
b. 安装模式:需开启手机USB调试模式及允许USB安装。连接时确定允许调试。
需要在手机上自动安装PerfDog.apk,手机屏幕上有实时性能数据显示(允许USB应用安装和PerfDog悬浮窗管理权限),启动PC版PerfDog.exe,则会在手机上自动PUSH安装PerfDog.apk,具体安装类似各个手机厂商安装第三方APP提示安装即可。(注:由于很多手机安装需要账号密码,导致无法自动安装,如果自动安装失败,则会把安装文件PerfDog.apk释放到当前文件夹里,手动安装PerfDog.apk即可)。此模式下,在测试过程中,可能由于系统资源紧缺会kill PerfDog显示app(手机界面性能数据显示),但不影响正常测试功能。
出现如下提示则手机连接成功。
若perfdog检测不到手机? 官网给出了非常详细的解决方法参考,可逐一排查解决:解决方案
3. 选择手机测试模式
有提供USB模式测试跟WIFI模式测试两种选项。
若需要测试功率,只能选择WIFI模式测试(因USB连接会充电)。WIFI模式测试需要确保PC电脑跟手机在同一WIFI下,并在WIFI检测连接成功后,拔掉USB数据线。
注: Android安装模式下,第一次选择手机设备时,会提示安装PerfDog.apk,安装后点击允许PerfDog在后台运行:同时打开悬浮窗管理权限。
另: 如果手机没有以上自动安装perfdog.apk,进入PerfDog PC客户端的安装文件夹,找到apk手动安装。
4. PerfDog客户端性能数据采集
板块1:选择测试应用:
会显示手机上安装的所有应用,选择自己要测试的具体应用
板块2:设备信息及设置
设备:手机设备信息,包括操作系统、CPU、GPU、屏幕尺寸、内存大小等
设置:设置帧率FPS、帧生成时间FrameTime、CPU
关于:PerfDog版本信息,帮助说明
板块3:图表数据
测试中,以图表形式实时展示获取到的性能数据(默认FPS、CPU Usage、Memory Usage)
板块4:性能参数设置
点击“+”按钮,默认勾选了一些常用的性能参数,可自行勾选需要收集或需要图表数据展示的性能参数
以上FPS、CPU Usage、Memory Usage、FrameTime等是什么?这些对应性能指标的介绍看官网说明https://bbs.PerfDog.qq.com/article-detail.html?id=5
板块5:开始记录/保存
a、测试开始
点击开始记录,同步在手机端操作被测应用,手机悬浮小窗实时显示性能数据
- 测试中,对性能数据进行标定及标注:
鼠标左键双击,则标注。左键双击已生成的标注,则取消。鼠标左键单击,则标定
- 场景Label标签: 鼠标左键双击颜色区域可修改对应区域标签名,并可添加多个标签
b、测试结束
测试结束后,点击保存。支持两种方式保存处理性能测试数据。
- PerfDog WEB云端: 数据默认勾选上传web云端
- 本地保存: 勾选保存本地,默认excel文件记录。
若忘记“开始记录”,可框选所需上传分析的数据,右键保存进行上传。
板块6:Log日志记录
5. WEB云端数据分析
点击PerfDog客户端右上角“云图标”,进入云端web看板:
性能数据详细页面:
除了查看当前用例获取数据外,还可以添加对比,更多Web云端控制台操作说明:https://bbs.perfdog.qq.com/article-detail.html?id=49
6. 本地数据EXCEL文件
本地测试数据回放:
回放结果:
总结:工具主要是帮助进行数据收集及管理,真正要做好app性能测试还得清楚性能测试数据分析及问题定位。但PerfDog已大大简化了性能数据收集的工作,你只需掌握好这一款工具,既不需要掌握多个性能数据采集的方法,也不需要进行多个性能测试结果整合。使用也非常简单,无须ROOT/越狱,是全网唯一支持iOS/Android/小程序/H5等移动全平台性能测试的工具,且支持用户基于service组件二次开发自己的PerfDog性能工具或自动化服务。
测试思路:测试APP按照业务主流程操作5~8min,PerfDog记录性能数据并上传,获取FPS、CPU、内存数据;每种机型测试3组数据再取平均,内存峰值取最大值。
注意:每次测试均要尽可能保证测试用例(操作)的一致性
性能数据分析
参数解释:
FPS: the number of frame rate by the process each second 帧率,每秒播放的图⽚。可⽤连环画理解,帧率越⾼,画⾯感越好
Avg(FPS):Average(FPS) 平均帧数(⼀段时间内的平均FPS)
FPS >=18[%]
FPS>=25[%]
Var(FPS): Variance(FPS) 帧率⽅差(⼀段时间内的FPS⽅差)
Drop(FPS):降帧次数(平均每⼩时相邻两个FPS点下降⼤于8帧的次数)
Jank:1秒内卡顿次数
Jank(/10min):平均每10分钟的卡顿次数
BigJank(/10min):平均每10分钟的严重卡顿次数
FTime:上下帧画⾯显⽰时间间隔,帧的耗时
Delta(FTime):增量耗时,平均每⼩时两帧之间时间差>100ms的次数
Render:渲染器利⽤率
Tilter:Tilter利⽤率
Network(Recv/Send 测试⽬标进程流量)
Battery Power(Current电流、Voltage电压、Power功率)(注:与仪器测试误差<3%左右)
性能测试主要分析参数
FPS、CPU、GPU、Memory
FPS:帧率
帧率简单来说就是⼀秒内播放了多少帧的图⽚,如果说帧率越⾼那么代表画⾯越流畅,越清晰。
在性能参数中,关于FPS常见的参数就是AvgFPS(平均帧率)、VarFPS(掉帧次数,就是掉帧超过8的次数)、FPS>=18、
FPS>=25、Jank、BigJank
CPU:中央处理器
在性能参数中,关于CPU常见的参数就是AvgAppCPU(APP平均CPU使⽤率)、AppCPU<=60%、AppCPU<=80%、AvgCtemp
GPU:图像处理器
在性能参数中,关于GPU常见的参数只有就是AvgGUsage(平均GPU使⽤率)
Memory:内存
在性能参数中,关于Memory常见的参数就是AvgMemory(平均内存)、PeakMemory(峰值内存)
场景用例编写分析
- ⼤厅遍历主要是测试:
第⼀、相对于挂机对于FPS的关注反⽽会降低。
第⼆、每个功能打开关闭是否释放内存。
第三、CPU占⽤率和温度。
- 核⼼场景各模式要怎么测?
核⼼场景是测试:
第⼀、各种不同模式的玩法的数据。
第⼆、需要总结出不同模式的差异,对数据有个预期。
第三、设计场景上尽量能设计出每个模式相同的操作或者有⼀段相同的操作单独打label。
第四、连续录制⼏个模式,查看数据。
- 核⼼内容要怎么测?
核⼼内容是测试:
第⼀、对应游戏的核⼼玩法中的常见极端环境。
第⼆、核⼼内容和各种模式不同,它主要是要测⼀个极端环境下数据的稳定。
第三、该测试可能会多次录制,进⾏对⽐。
第四、如果数据有问题会进⾏多次录制,分析场景,定位问题。
- 核⼼场景新增内容
什么样的新增内容要怎么测?
新增内容是测试:
第⼀、新增的内容对核⼼场景有影响。
第⼆、新增内容对之前场景数据有影响。
第三、主要有涉及特效、新模块、新地图等。