APP专项测试之耗电量测试

一、耗电量测试分析

相对于PC端来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。Android的很多特性都比较耗电(如屏幕、GPS、sensor传感器、唤醒机制、CPU、连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。

1、耗电场景

主要的耗电场景有:

cpu:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;

wakelock:只要有应用拿到wakelock这个锁,系统就无法进入睡眠状态。频繁wakelock或者申请了wakelock没有释放,会导致耗电;

wifiscan和wifilock:wifiscan和wifilock也会导致手机的wifi模块处于激活状态,频繁的wifiscan或者wifilock不释放,会导致耗电;

sensor:传感器打开后会导致系统持续监听设备外围环境的数据变化,使用后不及时关闭,会导致耗电;

network:大量的数据传输,或者长时间的移动网络数据传输导致radio长期处于活跃状态,会导致耗电;

gps:gps也是一种传感器,定位中没有及时关闭,会导致耗电;

业务层面,用户最核心基础的模块:

新增的基础逻辑,倘若入口明显,潜在较大访问,必须保证性能;

活动需要,因为活动上新的逻辑,存在较大的用户访问,需尽力提升用户体验;

反馈体验不好的模块。

2、耗电量测试

获取测试结果时我们要注意数据的有效性,避免数据误差,让数据更有效的说明问题,下面提供两种方法,来提高获取数据的有效性。

横向对比法:分两步测试,第一步测量手机硬件运行消耗的电量;第二步测试手机硬件和软件运行综合的耗电量。最后将两次的耗电进行对比,得出软件消耗的电量大小;

纵向对比法:同时进行两台手机,其中一台手机不运行软件,另一台手机运行软件;分别获得两台手机的耗电量,对比两台手机耗电量差异,得出软件消耗的电量大小。

这两种方法在测试上有一定的差异,很多应用软件都是需要移动网络的支持,而手机接收的网络信号是会随时间变化的。

第一种方法的误差主要来源于手机在不同的基站网络下工作状态的变化。

第二种方法的差异则体现在两台手机本身硬件消耗的电量可能存在差异,所以需要尽可能使用同一型号,同一批次的手机。

二、IOS端耗电量测试

1、常规测试法

(1) 测试方法

①选定测试场景及时长;

②手机充电,放电,手机电量达到预设值,每个场景开始前,保持电量都是这一电量,并且手机是室温;

③手机系统设置,一般关注蓝牙、定位、通知消息、音量、后台应用等等,都设置为预定的状态;

④记录剩余电量,开始执行测试,测试完毕后再记录一次剩余电量,电量差就是这个时长内的耗电量。

(2) 测试结果准确性

这样的测试方法,明显的耗电问题可以发现,比如一次测试掉电10%,但是一些不太明显的问题用这个方法无法发现。另外这种测试方法没有具体的数据,实用性不强。

APP专项测试之耗电量测试_第1张图片

编辑

添加图片注释,不超过 140 字(可选)

2、Energy Impact

(1) 测试方法

开发过程中,运行调试模式就可以在Xcode里直接查看Energy Impact。电量仪表盘上有3个区域,如果经常跑到红色区域那就该检讨下自己代码。下面的柱状图会告诉你耗电的组成部分:CPU,Network,Location,GPU,其中Overhead表示不是由App引起的耗电。如果有问题,可以进一步通过快捷入口打开Time Profile,Network Profile,Location Profile做进一步细致排查问题点试

APP专项测试之耗电量测试_第2张图片

编辑切换为居中

添加图片注释,不超过 140 字(可选)

(2) 测试结果准确性

利用Energy Impact测电量很简单,缺点就是必须连上真机,只适合开发人员;而且对于耗电只能给出定性,没有定量的显示。

3、Sysdiagnose耗电量测试

Sysdiagnose是苹果的日志系统,Sysdiagnose很庞大,记录电池、第三方APP、各种系统功能和应用的所有运行情况。通过Sysdiagnose我们可以获取电量消耗,电压,电流,温度,甚至系统的 CPU、GPU 等等耗电都有详细的数据。而且不单单是自己的 App,手机内安装的其它的 APP 同样可以获取到数据,这样大大方便了我们做出详细的对比测试数据。

(1) 测试方法

①Sysdiagnose需要一个开发者账号,在苹果开发者官网Profiles and Logs下载证书BatteryLife.mobileconfig。

传送门:Profiles and Logs

如下所示:

你可能感兴趣的:(APP自动化测试,程序人生)