软件测试学习笔记丨 App 性能测试方案 - 霍格沃兹
本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22578
App 客户端性能测试
app 客户端的性能测试,主要是指 app 运行操作过程当中,监测当前手机系统的一些性能指标,以此来确定 app 的性能是否会影响到用户的体验。app 的性能指标主要包括以下几个:
启动速度
CPU 占用率
内存占用率
电量消耗
流量消耗
流畅度
测试方案
1.启动时间
手机 APP 的启动时长是一个很容易被用户感知的性能指标,启动时长过长会让用户极不愿意继续等待。因此启动时长是一项比较靠前的性能指标。APP 的启时长分为两种情况,一种是冷启动时间,另一种是热启动。
冷启动:应用序首次启动,进程首次创建并加载资源的过程
热启动:指 app 没有被后台杀死,仍然在后台运行,通常我们再次去打开这个 app,这种启动方式叫热启动
场景设计
冷启动:清除后台所有应用,等待数秒 ,启动软件
热启动:切换到桌面,等待数秒 ,重新切换回应用
测试方法
使用 adb 命令进行测试
冷启动:应用进程首次启动 adb shell am start -W 包名/界面名
热启动:切换到主页后再启动应用 adb shell input keyevent 3adb shell am start -W 包名/界面名
结果分析:
通过 adb 命令可获取的时间如下:
ThisTime :该界面 ( activity ) 启动耗时(毫秒)
TotalTime :应用自身启动耗时 = ThisTime + 应用 application 等资源启动时间(毫秒)
WaitTime :系统启动应用耗时 = TotalTime + 系统资源启动时间(毫秒)
如何确定启动时间是否符合标准?
根据用户体验
和以往版本进行对比
横向对比,和同类产品一起测试,不超过同类产品的 1 倍
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 定义:测试过程中,卡顿时长的占比。即 Stutter(卡顿率)=卡顿时长/总时长
场景设计
打开被测软件的每一个页面进行测试
测试方法
在 app 上进行操作,使用 adb 工具采集数据
结果分析:
结果返回的是 16 进制整数,需要进行转换
拿到帧数之后,可以获取下一秒的帧数,然后使用两次数据的差值计算帧率,给出示例代码,while 循环一直获取数据,手工或者 appium 自动化操作对应的用例场景即可
3.CPU 利用率
某些场景下我们去使用 App,可能会碰到手机会出现发热发烫的现象。这是因为 CPU 使用率过高、CPU 过于繁忙,会使得整个系统无法响应用户,整体性能降低,用户体验变得相当差,主要关注的是 cpu 的占用率
CPU Usage:传统 cpu 利用率,也叫未规范化 cpu 利用率
CPU 测试场景设计
测试点:
空闲时间(切换至后台)的消耗,基本没大应用使用 cpu
在运行一些应用的情况下,cpu 已占 50%的情况下,观察应用程序占用 cpu 的情况
在高负荷的情况下看 CPU 的表现(cpu 占用应是在 80%以上)
具体场景:
应用空闲状态运行监测 CPU 占用率,空闲状态:应用按 Home 键退到后台,不再占用系统的状态(通常- 是灭屏半分钟后),CPU 占用率=0%
应用中等规格运行监测 CPU 占用率,中等规格:模拟用户最常见的使用场景,CPU 占用率≤30%
应用满规格长时间正常运行监测 CPU 占用率,CPU 占用率≤30%
应用正常运行期间监测 CPU 占用率峰值,应用正常运行:打开应用进行基本操作,CPU 占用率≤50%
测试方法
使用 adb 工具采集不同场景数据
结果分析:
返回的结果就是 app 当前所占用的 cpu 占用率
和自身 app 的上个版本对比
和竞品对比
自身 app 各个界面对比
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。
内存测试场景设计
空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少
中强度状态:时间偏长的操作应用
强度状态:高强度使用应用,可以跑 monkey 来测试(通常用来测内存泄漏)
内存泄漏:指应用里的内存一直没有释放,内存一直增加 ,系统内存一直减少
测试方法
使用 adb 工具采集不同场景数据
结果分析:
返回的结果就是 app 当前所占用的内存使用率
退出某个页面后,内存是否有回落
进行某个操作后,内存是否增长过快
旧版本和新版本比较
新版本和竞品比较
软件测试开发免费视频教程分享
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/d0b6a79fa7fe8d2de20e13bc2】。文章转载请联系作者。
评论