提到 Android 性能测试,我们总免不了俗地要首先介绍下 Android 性能参数以及获取方法。目前 Android 性能测试过程中关注比较性能指标有 CPU、内存占用和电量消耗,其中 CPU 占用可以通过 “top” 命令来查看,内存占用是通过 “dumpsys meminfo” 来查看。
“top” 命令得出的性能参数有 CPU 占用百分比、VSS(虚拟耗用内存,包含共享库占用的内存) 和 RSS(实际使用物理内存,包含共享库占用的内存);
“dumpsys meminfo” 命令完整格式是:adb shell dumpsys meminfo packagenameorpid 。dumpsys 得出程序内存分为 native 和 dalvik,dalvik 就是我们平常说的 java 堆,我们创建的对象是在这里面分配的,并且系统自动回收这部分内存,我们更多的是关注 Native 堆的占用情况。
工具的目标是:提高性能测试工作效率
手工操作缺点:
目前我们性能测试的主要方法是反复地对某个页面进行同样的操作或使用,同时操作过程中通过脚本进行监控,最后导出脚本执行结果并且对结果进行分析,从而得出某个 Android APP 的资源占用情况。
但是在实际测试过程中,我们大部分操作仍需要通过人工执行脚本并且要导出脚本生成图表,这样的手工执行效率就有点低,因此我们可以将部分手工操作实现程序化,从而提高性能测试效率。
(1)执行并监控命令输出:
测试人员无需手动去执行任何 adb 命令,只需要填写被测程序包名和数据刷新间隔就可以了,也就是这个工具替代了之前手工执行的两个 shell 脚本:meminfo.sh 和 top.info,同时用户可以只选择 CPU 或者内存之一的占用情况进行监控,也可以选择 CPU 和内存二者同时监控,在命令执行间隔上以秒为单位进行输出,如果选择了 0 那么基本上可以达到 0.1 秒的效果。
(2)自动输出数据和产生报表:
自动输出结果有三种方式:第一种是实时地刷新并显示,另一种是停止监控之后在工具下方用图表的形式显示出来,最后一种是自动产生 excel 报表进行显示,excel 报表形式最为使用,用户可以通过对比竞争对手数据从而输出测试结果。
我们可以从下图得出功能运行时内存和 CPU 占用情况:
(1)CPU 占用情况:
测试结果说明:
图中命令执行间隔以 0 秒为单位,实时监测的对象是内存和 cpu 二者的占用情况,上图中显示的是 cpu 的占用变化曲线。如果点击图中 “获取内存变化曲线” 按钮,就可以获得此时的内存占用变化曲线图。
(2)Excel 报表 (以内存占用为例):
测试结果说明:
内存的 excel 报告包括了 native , dalivi 和总的内存占用 priv dirty,从图表报告来看手机管家在两次病毒查杀过程内存消耗大致一样。
这个工具属于摸索性质,在 excel 操作上主要参考和使用别的程序库。由于是多个线程对同一个标准输出操作和线程操作 COM,在使用时要按正常步骤操作,并且在生成报表时不要去拖动 excel 的滚动条就出现问题。还有个问题是如果测试时间比较长,输出数据比较多的话建议直接看 excel 报表输出,因为数据太多会导致输出线条重叠在一起。
加入腾讯优测官方群 214483489 与大咖们分享技术与时讯!