软件测试之APP性能测试

APP性能测试

测试app使用期间占用硬件资源(cpu、内存、流量、电量)使用情况。

如何测试App(资源)性能?

说明:使用工具或命令进行测试

工具:
SoloPi是一个无线的 Android 自动化工具,具备录制回放、性能测试等功能。

SoloPi是一个无线的 Android 自动化工具,具备录制回放、性能测试等功能。
功能

性能测试: 能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。

录制回放: 能够将用户的操作记录下来,支持在各个设备上进行回放。

一机多控: 操作一台主机设备来控制多台从机设备,进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。

下载:https://www.pgyer.com/solopi

安装: 独立安装的 SoloPi(APK,I0S无该版本),像普通APP一样安装。

SoloPi使用(选择测试项)

(1)打开SoloPi,选择性能测试
在这里插入图片描述
(2)选择被测应用,勾选监控指标,勾选后悬浮窗会出现在手机屏幕上
在这里插入图片描述
(3)点击开始监控,随后打开被测APP应用,开始测试
在这里插入图片描述
(4)查看数据采集结果
在这里插入图片描述
在这里插入图片描述

APP性能测试关注点

  • APP使用时对CPU、内存的占用情况;
  • APP使用时是否流畅等;
  • APP使用时电量流量的消耗情况;
  • APP的启动时间是否过长;
  • APP是否能长时间稳定运行

内存监控指标

每个程序运行时都需要将代码和数据放入内存中,内存不足则程序无法正常运行。
提示: SoloPi工具提供了两个内存的监控指标:Private dirty和PSS

  • Private dirty(私有内存): 进程独占内存,也就是进程销毁时可以回收的内存容量。
  • PSS(实际使用内存): 将跨进程共享页也加入进来,进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。在这里插入图片描述

内存问题的现象

常见的现象:

内存泄漏:

  • 内存泄露 memoryleak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
  • memoryleak会最终会导致内存溢出。

内存溢出:

  • 内存溢出 outofmemory,是指程序在申请内存时,没有足够的内存空间供其使用,出现outof
    memory

内存问题产生的影响

  • 程序实际使用的内存PSS持续增长可能是内存
    泄漏
  • 程序出现crash(崩溃)可能是内存溢出

CPU监控指标

SoloPi工具提供了两个CPU的监控指标:全局占用CPU和应用进程CPU。
全局占用CPU: 整机的CPU使用水平,即当前手机的CPU整体使用率

  • 在 Linux 系统下,CPU 利用率分为用户态、系统态和空闲态
  • 用户态: 表示 CPU 处于应用程序执行的时间
  • 系统态: 表示系统内核执行的时间
  • 空闲态: 表示空闲系统进程执行的时间。

CPU使用率=CPU执行非系统空闲进程时间/CPU总的执行时间

CPU消耗引起的现象

  • CPU使用长时间处于90%以上
  • 手机发热、耗电量增加
  • 响应变慢、引起ANR(Application Not Responding)

流量监控

操作APP会与服务器交换数据,流量就是指这些交互数据的总大小。
在这里插入图片描述
SoloPi工具提供了流量监控指标:网络

提示
上行消息是APP发送给服务器的数据,下行消息是APP接收的服务器的数据

步骤:
(1)打开SoloPi工具,勾选流量监控指标网络
(2)进入APP,操作上述业务
(3)查看流量统计结果

流量优化策略

  • 数据的压缩
  • 不同数据格式的采用
  • 控制访问的频次
  • 只获取必要的数据
  • 缓存机制针
  • 对不同的网络类型设置不同的访问策略

电量监控

APP应用使用时对电池电量的平均消耗

常见的耗电量大的场景:

  • 定位
  • 网络传输
  • 屏幕亮度
  • wake_locker(锁屏-解锁)

电量的监控方法

系统自带接口

  • 最新的I0S和Android系统内置的Setting里可以查看各个APP的电池消耗
  • 该方案不能检测固定某一时间段内的电池精准消耗。

硬件检测

  • 通过硬件可以精准地获得应用的电量消耗(如:PowerMonitor硬件设备)
  • 该方案测试时需要拆机,成本太高比较麻烦。

软件工具检测

  • 通过第三方的软件来获取应用的电量消耗(如:AccuBattery、360省电王、SoloPi等)
  • 该方案取决于第三方软件的计算准确性。

结果分析

  • 与基准数据对比(基准数据来自于产品经理,或者以往数据积累)
  • 横向对比(竞品)(目前多数采用这种方法)

流畅度监控

动画播放或图片切换的流畅性

流畅度的监控指标

SoloPi工具提供了流畅度的监控指标:帧率FPS

  • 即Frames per second:GPU在一秒内绘制的帧数。(简单理解为一秒内呈现给用户的图片数)
  • FPS值越高画面越流畅

流畅度问题产生的影响:

  • 想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度
  • 想达到流畅的效果,至少需要每秒24帧
  • 60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒

注意事项
当页面多为静态时,FPS值很小是正常的
页面数据多为动态加载时,FPS值比较大(建议在24帧以上)

启动速度

APP启动速度: 从启动app到主页面加载完成的速度。

APP启动分类: 冷启动、热启动
冷启动: 启动app进程,这种启动方式叫做冷启动。
热启动: 将app从后台置于前台。

Solopi指标: 启动耗时计算

app的稳定性测试

什么是稳定性?
app程序能持久良好的运行。

Monkey介绍
monkey就是猴子,monkey测试就像一只猴子在玩手机(乱抓、乱点)

作用: 模拟用户随机(触摸屏幕、滑动、按键)等操作来对程序进行稳定性测试,检测程序异常情况。

提示:
Monkey程序是Android系统中自带一款稳定性测试工具,由ava语言编写。【无需单独安装】Android位置:/system/framework/monkey.jar

稳定测试的步骤

1、执行命令,执行结果写入日志
在这里插入图片描述
2、检查日志异常
在这里插入图片描述

Monkey命令

语法:adbshellmonkey-p包名-v 次数>tpshop.log
参数:
-p:指定包名
-v:log详细程度(最高支持’-v -v-V'最详细)次数:要执行随机操作的次数
>:重定向(保存)日志
获取包名:adb shell dumpsys window windows |grep usedApp

检查日志

检查日志中是否有异常关键字,提取相关日志发给开发。

常见关键字:

  • 无响应:在日志中搜索“ANR”、timeout
  • 崩溃:在日志中搜索“NullPointerException”或 Exception
  • 闪退:memoryout、memory Leak
  • 错误:error

提示:
1、测试人员一般不需要分析错误日志原因,如果具备日志分析能力可以辅助开发定位缺陷原因。
2、日志错误类型原因有很多,需要经验积累,以上关键字提供了常见错误关键字

tpshop稳定性测试

  • 获取app包名:com.tpshop.malls
  • 执行monkey命令:adbshellmonkey-p包名-v次数>c:\日志.log
  • 检查日志异常关键字:[ANR,timeout,Exception,out,leak,error
  • 将异常日志发给开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值