【学习笔记】APP性能测试

  当APP的用户反馈中频繁出现使用时卡顿,耗流量,启动慢等字眼时就说明APP的性能出现了问题。在APP上市前对APP进行性能测试是必不可少的步骤。
  一般来说,APP性能测试主要针对内存、CPU、帧率(页面的显示由一帧一帧的画面组成,即画面渲染。帧率大小会影响页面的流畅度)、流量和启动时间。不同机型的性能特性会有所不同,在配置较低的手机测试APP性能,往往也会得到较差的结果,所有性能测试不能根据手机做横向对比,应该在同一台手机上对APP的不同版本进行比较。至于手机的选择,一般可以在用户占比较高的手机型号中选择性能较差的。

内存

内存作为性能测试关注的重点之一,可能出现的性能问题有:内存泄漏、申请了一块内存空间,使用完毕后没有释放,一直占着,自己不用,也不让别人用。内存溢出,APP占用的内存越来越大,无法限制,导致程序崩溃。当APP出现内存泄漏或内存溢出问题时,就会导致程序卡顿,甚至崩溃,是严重的性能问题。

CPU

当APP在运行过程中,如果CPU占用过高,也会导致程序卡顿或崩溃。

针对内存和CPU的测试执行

制定测试策略,并根据策略选择测试工具进行排查。
测试策略:
首先,检查新功能部分会不会引起内存、CPU性能问题。一般新功能容易导致性能bug。
接着,对主干流程进行排查,这些流程上的功能会较多地被用户使用。
另外,与老版本或同类型的APP的内存和CPU使用情况进行对比
排查时主要关注点有:
内存抖动
 内存占用持续忽高忽低,不平缓。
内存持续升高
 在页面上操作关闭页面时,尤其是多次进行开启关闭页面操作时,是否及时释放了内存,或是出现内存持续升高,根本停不下来的情况。
CPU占用过高
 查看CPU在使用过程中的均值和走势。APP的界面显示都是在UI主线程内的,基本上在一个CPU上跑,一般在20%以下可接受。

内存和CPU都是底层的,对于Android系统可以通过工具Emmagee来测试。
PSS:应用实际使用内存

帧率

画面渲染时间过长,导致帧率降低,页面出现丢帧卡帧的现象。对于帧率的性能要求可以是每帧的渲染绘制时间不超过16 ms。
 原因:当帧率 = 60帧/秒时,肉眼察觉不出区别,所以当帧率 ≥ 60帧/秒时,用户通常察觉不到页面卡顿的现象。每帧的渲染时间不超过16 ms就能达到1 s渲染绘制60帧的效果。
在对帧率进行测试时,通常采取的策略是遍历所有页面,检查每个页面每帧的渲染时长。
对于Android系统,可以采用 gfxinfo 进行帧率测试。
手机–设置–开发者选项–GPU呈现模式分析–在屏幕上显示为条形图
在这里插入图片描述
在这里插入图片描述
以黑色框出的绿色线条为基准,像左侧那些超出绿色线条以上的都代表那些帧率的渲染时间过长。

流量

1、测试主干流程是不是很耗费流量,是否存在重复或者无用的请求。
比如,加载一张图片却发了两次请求–重复的请求;根据接口协议,在进入某页面时应该没有修改数据的请求,但是每次都发送了–无用的请求。
2、留意资源量比较大的场景。
比如多张图片的加载,音频和视频的加载。这样的情况是否是服务器压缩后再发给app。
3、安装后首次启动是否有大量数据加载。
4、app在后台运行时是否仍然频繁向服务器发送请求。

流量测试工具Emmagee
Emmagee安装包下载地址:https://github.com/NetEase/Emmagee/releases.
Emmagee存在手机兼容性问题,如果测试后,流量显示N/A或者为0,可换成模拟器测试。
使用Emmagee测试得到的数据信息在这里插入图片描述

启动时间

启动时间是指点击手机屏幕上的app图标到app主界面显示完成的这段时间。主界面显示可能有1个或者多个页面的显示,在app的代码中,一个页面就对应一个activity。启动时间一般是3~5s,如果超出这个范围,就需要开发人员排查问题。
启动时间过程会直接影响用户体验。测试要点如下:
1、安装后首次启动
2、常规启动
app安装完成,首次打开后正常退出(完全退出,不在后台),再次打开app。
**启动时间测试工具ADB **
1、通过adb logcat保存日志
2、查找Displayed关键字
3、根据activity名称来筛选
4、累加各activity的时间
在这里插入图片描述
启动时间与当时的网络有关,可以多重复几次取平均值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值