app性能测试怎么做?内容全在这里了_app流畅度测试方法

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

1 app性能测试
提到APP的性能测试这个概念比较笼统,因为APP的性能测试分为服务端的性能和手机端的性能测试

1.1 app服务端性能测试
app服务端的性能测试,利用jmeter等工具模拟并发,压测服务器系统,服务端性能测试,一般可以通过接口来测,关注的指标主要包括以下几个:

平均响应时间
错误率
吞吐量
CPU/内存占用率
网络/硬盘的读写速度
1.2 app客户端性能测试
app客户端的性能测试,主要是指app运行操作过程当中,监测当前手机系统的一些性能指标,以此来确定app的性能是否会影响到用户的体验。app的性能指标主要包括以下几个:

启动速度
CPU占用率
内存占用率
电量消耗
流量消耗
流畅度
2 测试方案及工具选择
2.1 perfdog
官网:https://perfdog.qq.com/

介绍:腾讯出品的移动全平台iOS/Android性能测试、分析工具平台。

特点

无需ROOT/越狱
支持移动全平台
数据准确,工具本身对测试设备CPU的性能影响<1%,帧率无影响
应用广泛支持所有APP应用、游戏、小程序、小游戏、H5、web等
云端数据在线分析
支持团队合作

2.2 测试方案
2.2.1 启动时间
手机APP的启动时长是一个很容易被用户感知的性能指标,启动时长过长会让用户极不愿意继续等待。

因此启动时长是一项比较靠前的性能指标。APP的启时长分为两种情况,一种是冷启动时间,另一种是热启动。

冷启动:应用序首次启动,进程首次创建并加载资源的过程
热启动:指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动
1)场景设计

冷启动

场景设计:清除后台所有应用,等待数秒 ,启动软件

热启动

场景设计:切换到桌面,等待数秒 ,重新切换回应用

2)测试方法

使用adb命令进行测试
冷启动:应用进程首次启动

adb shell am start -W 包名/界面名
热启动:切换到主页后再启动应用

adb shell input keyevent 3
adb shell am start -W 包名/界面名
3)结果分析:

通过adb命令可获取的时间如下:

ThisTime :该界面 ( activity ) 启动耗时(毫秒)
TotalTime :应用自身启动耗时 = ThisTime + 应用 application 等资源启动时间(毫秒)
WaitTime :系统启动应用耗时 = TotalTime + 系统资源启动时间(毫秒)
如何确定启动时间是否符合标准?

根据用户体验
和以往版本进行对比
横向对比,和同类产品一起测试,不超过同类产品的1倍
2.2.2 流畅度(FPS)
FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。

FPS(1s内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS)

AVG(FPS):平均帧率(一段时间内的平均FPS)
Var(FPS):帧率方差(一段时间内FPS方差)
Drop(FPS):降帧次数(平均每小时相邻的个FPS点下降大于8帧的次数)
Jank(1s内卡顿次数)

BigJank:1s内严重卡顿次数
Jank(/10分钟):平均每十分钟卡顿次数
BigJank(/10分钟):平均每十分钟严重卡顿次数
FTime(上下两帧画面显示时间间隔,即认定为帧耗时)

AVG(FTime):平均帧耗时
Delta(FTime):增量耗时(平均每小时两帧之间时间差>100ms的次数)
PerfDog-Stutter(卡顿率)

PerfDog Stutter 定义:测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长
1)场景设计

打开被测软件的每一个页面进行测试

2)测试方法

在app上进行操作,使用perfdog工具采集数据

3)结果分析:

游戏方面

​ 游戏流畅度是最影响用户体验的,所以需要重点关注FPS、Jank及卡顿率。

APP方面

APP也需要关注FPS、Jank及卡顿率。只是需要区分使用场景,具体的数据对比可以和以往版本进行对比,也可和竞品横向对比。

​ 1) 静态页面窗

​ 只需关注FPS,理论FPS应该为0,否则,说明有冗余刷新,容易引起手机发热及耗电。

​ 2) 有滚动动画页面窗口

​ 只需关注FPS,FPS处于合适值即可,无需高频刷新。

​ 3) 快速滑动页面窗口

​ 需要关注FPS、Jank及卡顿率。一般滑动状态下,帧率越高越好,Jank越小越好。

​ 4) 播放视频页面窗口

​ 需要关注FPS、Jank及卡顿率,视频卡顿直接影响用户。视频一般帧率18-24帧,Jank=0。比如微信播放视频、视频播放器等。

2.2.3 CPU利用率
某些场景下我们去使用App,可能会碰到手机会出现发热发烫的现象。这是因为CPU使用率过高、CPU过于繁忙,会使得整个系统无法响应用户,整体性能降低,用户体验变得相当差,主要关注的是cpu的占用率

CPU Usage:传统cpu利用率,也叫未规范化cpu利用率
计算方法:当前时刻cpu频率下,CPU Usage = CPU执行时间/CPU总时间,一般adb等获取的都是未规范化的cpu利用率

CPU Usage(Normalized):规范化cpu利用率
由于移动设备CPU频率时刻变化,用传统CPU利用率计算方法,假定在低频率时刻计算出CPU利用率=30%,和在CPU高频时刻计算出CPU利用率=30%。同样都是30%但性能消耗是完全不样的,明显高频消耗更高。传统CPU利用率已无法真实反映性能消耗。

所以我们需要一种规范化(可量化)的统计方式。将频率因素考虑进去。

CPU Usage(Normalized)= (CPU执行时间/CPU总时间) * (当前时刻所有CPU频率之和/所有CPU频率最大值之和)。

1)CPU 测试场景设计

测试点:

空闲时间(切换至后台)的消耗,基本没大应用使用cpu
在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况
在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)
具体场景:

应用空闲状态运行监测CPU占用率,空闲状态:应用按Home键退到后台,不再占用系统的状态(通常是灭屏半分钟后),CPU占用率=0%
应用中等规格运行监测CPU占用率,中等规格:模拟用户最常见的使用场景,CPU占用率≤30%
应用满规格长时间正常运行监测CPU占用率,CPU占用率≤30%
应用正常运行期间监测CPU占用率峰值,应用正常运行:打开应用进行基本操作,CPU占用率≤50%
2)测试方法

使用perfdog采集不同场景数据

结果分析:

和自身app的上个版本对比
和竞品对比
自身app各个界面对比
2.2.4 内存
在Android系统中,每个APP进程除了同其他进程共享内存(shared dirty)外,还独用私有内存(private dirty),通常我们使用PSS(私有内存+比例分配共享内存)来衡量一个APP的内存开销

app内存有以下几个:

VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS。
而perfdog的Memory也就是Android PSS Memory,也是我们通常用作代表内存的数据,是实际使用内存的物理内存大小
1)内存测试场景设计

空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少
中强度状态:时间偏长的操作应用
强度状态:高强度使用应用,可以跑monkey来测试(通常用来测内存泄漏)
内存泄漏:指应用里的内存一直没有释放,内存一直增加 ,系统内存一直减少
2) 测试方法

使用perfdog采集不同场景数据

  1. 结果分析:

退出某个页面后,内存是否有回落

进行某个操作后,内存是否增长过快

旧版本和新版本比较

新版本和竞品比较

2.2.5 流量
目前的网络类型包含2G\3G\4G\wifi,其中还有不同运营商的区分,我们在APP的使用中经常遇到大资源,重复请求,调用响应慢,调用失败等各种情况。在不同的网络类型之下,我们不仅要控制流量使用,还需要加快请求的响应。

1)流量测试场景设计

安装后首次启动到全部加载完成的所有耗流
非首次启动到全部加载完成的所有耗流
后台运行耗流
运行某个业务场景消耗的总流量
2)测试方法

使用 perfdog 测试工具采集流量数据

注意! perfdog流量测试仅支持wifi连接状态

3)测试结果与分析

旧版本和新版本比较

新版本和竞品比较

场景 耗流 是否通过

场景耗流是否通过
打开登录页面,输入用户名与密码进行登录,点击签到并签到成功xxx KB是/否
打开商品搜索页,搜索xxx,直到第一页搜索的内容全部展示出来xxx MB是/否

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

buVNrodN-1715727517713)]
[外链图片转存中…(img-IK0cFN4a-1715727517713)]
[外链图片转存中…(img-jJH5p7G0-1715727517714)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值