代码改变世界

app性能测试之CPU和电量篇

2019-02-19 22:59  沁霖  阅读(2618)  评论(0编辑  收藏  举报

一、app性能测试指标有哪些(what):

app包大小 、app的下载/安装速度、app启动时间(冷启动、热启动)、CPU、memory、常用页面的加载时间、流畅度、电量、流量、功耗
 
二、做这些性能指标的目的(why):1.竞品分析   2.版本对比
 
三、那么这些指标要怎么测(how)
1.cpu获取方法2种:
第一种:
adb shell top -n 1| grep  + PackageName
取某个静态页面的cpu,和动态页面的cpu进行分析
第二种:
adb shell dumpsys cpuinfo 包名
2种得出来的数据差异性太大,原因可参考下面博客 :
 

2.电量的测试:
使用GT(腾讯公司研发的一款测app性能的工具,但是里面有些问题)
测试场景:
1)安装目标APK前后,电量无明显变化
2)使用一段时间后电量变化无异常
3)空闲状态下也就是按home键后台运行状态,电量无异常
android5.0后,获取电量数据不用这么痛苦了,dumpsys batterystats数据中。包含:Estimated power use (mAh):,下面就是每个uid的耗电量,只要把app下所有uid耗电量加起来即可!(来自 https://www.cnblogs.com/0616--ataozhijia/p/5134557.html
电量是测应用使用过程中   总电量=每个process的耗电量+数据流量的耗电量+wifi的耗电量+ Uid的wake lock耗电量( wakelock,只关心partial的类型)+Uid 其他传感器耗电量
android5.0后,获取电量数据不用这么痛苦了,dumpsys batterystats数据中。包含:Estimated power use (mAh):,下面就是每个uid的耗电量,只要把app下所有uid耗电量加起来即可!
adb连接电脑后,会给手机充电,那么怎么测试他的耗电量
方法一:
1.断开adb服务   adb kill-server
2.开启abd服务  adb start-server   或者  adb devices
这两步操作的作用:adb作为一种连接的方式,有可能被其他的程序占用,所以我们做电量记录时要避免打开很多可能冲突的东西
3.手机电池历史信息:
adb shell dumpsys batterystats --enable full-wake-history
4.重置电池数据
adb shell dumpsys batterystats --reset
5.指定app跑monkey
adb monkey -v 1000 <包名>
6.获取电量,可以用
adb shell dumpsys batterystats <包名> >本地电脑地址.txt
可以用Battery Historian图像化报告
Battery Historian 一款由Google提供的Android系统电量分析工具
(以上方法来自: https://testerhome.com/topics/12241
方法二:用万用表测
 
3.功耗测试方法: 
功耗测试中的测试子项: 
1、手机安装目标APK前后待机功耗无明显差异 
2、常见使用场景中能够正常进入待机,待机电流在正常范围内 
3、长时间连续使用应用无异常耗电现象

功耗测试方法: 

方法一:软件 
1、采用市场上提供的第三方工具,如金山电池管家之类的。 
2、就是自写工具进行,这里一般会使用3种方法: 
1)基于android提供的PowerManager.WakeLock来进行 
2)比较复杂一点,功耗的计算=CPU消耗+Wake lock消耗+数据传输消耗+GPS消耗+Wi-Fi连接消耗 
3)通过 adb shell dumpsys battery来获取 
3、battery-historian(google开源工具) 
方法二:硬件 
一般使用万用表或者功耗仪安捷伦进行测试,使用功耗仪测试的时候,需要制作假电池来进行的,有些不能拔插电池的手机还需要焊接才能进行功耗测试
 
5.流量
流量主要关注某个页面中加载图片所使用的流量大小,可使用fiddler工具获取。可以借用网易的开源工具:Emmagee
 
 
版权声明:本文为博主原创文章,转载请附上博文链接!