android性能测试方案

1.1 启动时间

关于应用的启动时间的测试,分为三类:

  • 1.首次启动 --应用首次启动所花费的时间

  • 2.非首次启动 --应用非首次启动所花费的时间

  • 3.应用界面切换--应用界面内切换所花费的时间那么如何来做启动时间的测试呢,一般我们分为2类,一类为使用软件来测试,一类为使用硬件来测试,首先我们说说软件测试的方法,可能大部分人都比较通晓使用android提供的DisplayManager来取activity的启动时间。通过日志过滤关键字Displayed来过滤所有activity所打印的,记录日志通过

image.png

然后使用

image.png

通过activity名来过滤获取所测应用

image.png

通过计算activity最后剩余的时间之和即可除DisplayManager的打印时间方法后,还有通过关注am的启动时间及DisplayManager打印的结束时间,通过两者时间之间想减也能得到应用的启动时间,还有可以通过PowerManager来计算打印时间,在应用启动的时候,我们可以关注ActivityManager-Launch的变化来计算应用的启动时间,还有可以通过截图统计启动时间,对于自研应用,最效率的莫过于直接在程序中插入打印时间的节点了。

1.2 内存消耗

内存消耗,这个测试节点的设计目标是为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性,当然关于内存测试,在这里我们需要引入几个概念:空闲状态、中等规格、满规格。空闲状态:指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫做空闲。中等规格和满规格指的是对应用的操作时间的间隔长短不一,中等规格时间较长,满规格时间较短。

接下来我们说说在内存测试中,存在很多测试子项,如下清单所示:

  • 1.空闲状态下的应用内存消耗情况 2.中等规格状态下的应用内存消耗情况 3.满规格状态下的应用内存消耗情况 4.应用内存峰值情况 5.应用内存泄露情况 6.应用是否常驻内存 7.压力测试后的内存使用情况

关于android内存测试的方法基本分为几类

使用android本身提供的ActivityManager.MemoryInfo()方法获得(此方法请百度或google)此类第三方工具有如网易的Emmagee、安测试、腾讯的GT等。

  • 2.使用android提供的
image.png

来获取。

3.使android提供的procrank

这里我们详解一下procran方法(批处理)

首先去google获取procrank、procmem、libpagemap.so 三个文件 .

然后push文件,执行

image.png

赋权

image.png

在开启工具记录

image.png

1.3 帧率GPU

过度绘制是指界面显示的activity套接了多层而导致。帧率是指屏幕刷新率。帧方差是指屏幕刷新帧间隔方差。对于GPU的测试主要包括以下几个测试子项:界面过度绘制、屏幕滑动帧速率、屏幕滑动平滑度。对于过度绘制的测试主要通过人工进行测试,通过打开开发者选项中的显示GPU过度绘制来进行测试(PS:只有android4.2及以上的版本才具备此功能),验收的标准为:

不允许出现黑色像素

不允许存在4x过度绘制

不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)

对于屏幕滑动帧速率主要有2种方法。

1.手机端需打开开发者选项中的启用跟踪后勾选Graphics和View

2.启动SDK工具Systrace插件,勾选被测应用,点击Systrace插件,在弹出的对话框中设置持续抓取时间,在tracetaps下面勾选gfx及view选项,

3.人滑动界面可以通过节拍来进行滑动或者扫动,帧率数据会保存到默认路径下,默认名称为trace.html

4.将trace.html文件拷贝到linux系统下通过命令进行转换,生成trace.csv文件

5.用excel打开文件计算得到帧率

1.4 机型兼容适配

采用腾讯质量开放平台提交专家兼容测试自动化测试任务,得到测试报告。

腾讯质量开放平台网址https://wetest.qq.com/

1.5 压力测试

输入adb 命令让APP跑monkey压力测试

adb shell monkey -p xxx.xxxx.xxx -s 123123 --throttle 300 -v -v 20 > d:\monkey.txt

1.6 流量消耗

性能测试的——流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试。流量测试,同样需要引入几个名词。中等负荷:应用正常操作;高负荷:应用极限操作。

流量测试包括以下测试项:

a、应用首次启动流量提示

b、应用后台连续运行2小时的流量值

c、应用高负荷运行的流量峰值

d、应用中等负荷运行时的流量均值

流量测试一般都是用软件来进行的,这里我们一般分为2类:

a、采用市场提供的第三方工具来进行测试,如流量宝之类的

b、自研工具进行测试

自研工具进行测试一般包含2类方法:

通过tcodump抓包,再通过wireshake直接读取包信息来获得流量。首先获得被测应用的uid信息,可以通过adbshell dumpsys package来获取 然后在未操作应用之前,我们可以通过查看adbshell cat /proc/uid_stat/uid/tcp_rcv

adbshell cat /proc/uid_stat/uid/tcp_snd获取到应用的起始的接收及发送的流量,然后我们再操作应用,再次通过上述2条命令可以获取到应用的结束的接收及发送的流量,通过相减及得到应用的整体流量消耗。

1.7 电量消耗

功耗测试主要从以下几个方面入手进行测试:

a、测试手机安装目标APK前后待机功耗无明显差异。

b、常见使用场景中能够正常进入待机,待机电流在正常范围内。

c、长时间连续使用应用无异常耗电现象。

功耗测试的方法分为两类,一类为软件测试,一类为硬件测试。

软件测试一般分为2类:第一种采用市场上提供的第三方工具,如金山电池管家之类的。第二种就是自写工具进行,这里一般会使用3种方法:第一种基于android提供的PowerManager.WakeLock来进行;第二种比较复杂一点,功耗的计算=CPU消耗+Wakelock消耗+数据传输消耗+GPS消耗+Wi-Fi连接消耗;第三种通过 adbshell dumpsys battery来获取。

你可能感兴趣的:(android性能测试方案)