一、压力测试Monkey

使用不同策略:

1.根据自己的策略(各操作比重不同)来制定脚本,还可以二次开发,例如我之前修改的adb-for-test工程。

2.自动遍历界面每一个Views,点击每一个控件,保证monkey可以在每一个Activity上面都可以执行到。

3.Monkey测试一般是app进入集成测试时就每天进行,保证0 crash0 ANR

二、CPU占用百分比

使用adb shell top -n 1|findstr 包名$

 浅谈Android App专项测试_java

第三列4%表示这个app所占用的CPU百分比。

/system/build.prop文件设定了一些Dalvik虚拟机的配置。

通过进入shell用户后,进入到system下,cat build.prop,看到这个机器的一些信息:

 浅谈Android App专项测试_java_02

1.dalvik.vm.heapstartsize(表示应用程序启动后为其分配的初始堆内存大小8M)。这个值越大系统消耗RAM越快,应用程序打开后反应越快。

2.Dalvik.vm.heapgrowthlimit(每个应用程序最大内存可分配到96M)

3.Dalvik.vm.heapsize(表示单个虚拟机可分配的最大内存256M)

这个值越大系统消耗RAM则越快,程序运行会非常稳定。当内存占用每次超过256M倍数,就会再+256M划分新的虚拟机,可能会造成部分浪费。

三、应用内存占用

使用adb shell dumpsys meminfo 包名 来获取内存实时占用情况。

 浅谈Android App专项测试_java_03

Heap Size:堆内存,Heap Alloc:堆分配 private dirty:实际上是由RAM允许你的app分配的。

Pss TOTAL表示是应用占用的内存大小。

四、获取当前电量

获取电池充电状态:adb shell dumpsys battery|findstr status

 浅谈Android App专项测试_java_04

1:未知状态  2:充电状态  3:放电状态  4:未充电 5:充电已满

当前电量百分比:adb shell dumpsys battery|findstr level

 浅谈Android App专项测试_java_05

五、流量数据获取

1.首先需要根据应用包名(应用必须是运行状态)获取进程pid

Adb shell ps|findstr 包名$

 浅谈Android App专项测试_java_06

第二列表示进程pid,然后根据pid获取用户uid

Adb shell cat /proc/pid/status|findstr Uid

 浅谈Android App专项测试_java_07

根据uid就可以得到接收和发送的流量信息:

Adb shell cat /proc/uid_stat/Uid/tcp_rcv 获取接收数据大小(KB)

 浅谈Android App专项测试_java_08

Adb shell cat /proc/uid_stat/Uid/tcp_snd 获取发送数据大小(KB)

 浅谈Android App专项测试_java_09

六、内存泄漏

Hprof文件分析:hprof文件主要来源是ddms,使用MAT工具将hprof文件进行转义,测试及操作场景很重要,需要根据场景进行相应的操作。