Android应用专项测试浅谈
文章转载自:https://testerhome.com/topics/2513
一、压力测试Monkey
使用不同策略:
1.根据自己的策略(各操作比重不同)来制定脚本,还可以二次开发,例如我之前修改的adb-for-test工程。
2.自动遍历界面每一个Views,点击每一个控件,保证monkey可以在每一个Activity上面都可以执行到。
3.Monkey测试一般是app进入集成测试时就每天进行,保证0 crash、0 ANR。
二、CPU占用百分比
使用adb shell top -n 1|findstr 包名$
第三列4%表示这个app所占用的CPU百分比。
/system/build.prop文件设定了一些Dalvik虚拟机的配置。
通过进入shell用户后,进入到system下,cat build.prop,看到这个机器的一些信息:
1.dalvik.vm.heapstartsize(表示应用程序启动后为其分配的初始堆内存大小8M)。这个值越大系统消耗RAM越快,应用程序打开后反应越快。
2.Dalvik.vm.heapgrowthlimit(每个应用程序最大内存可分配到96M)
3.Dalvik.vm.heapsize(表示单个虚拟机可分配的最大内存256M)
这个值越大系统消耗RAM则越快,程序运行会非常稳定。当内存占用每次超过256M倍数,就会再+256M划分新的虚拟机,可能会造成部分浪费。
使用adb shell procrank参数也可以查看:
三、应用内存占用
使用adb shell dumpsys meminfo 包名 来获取内存实时占用情况。
Heap Size:堆内存,Heap Alloc:堆分配 private dirty:实际上是由RAM允许你的app分配的。
Pss TOTAL表示是应用占用的内存大小。
四、获取当前电量
获取电池充电状态:adb shell dumpsys battery|findstr status
1:未知状态 2:充电状态 3:放电状态 4:未充电 5:充电已满
当前电量百分比:adb shell dumpsys battery|findstr level
五、流量数据获取
1.首先需要根据应用包名(应用必须是运行状态)获取进程pid:
Adb shell ps|findstr 包名$
第二列表示进程pid,然后根据pid获取用户uid:
Adb shell cat /proc/pid号/status|findstr Uid
根据uid就可以得到接收和发送的流量信息:
Adb shell cat /proc/uid_stat/Uid号/tcp_rcv 获取接收数据大小(KB)
Adb shell cat /proc/uid_stat/Uid号/tcp_snd 获取发送数据大小(KB)
六、内存泄漏
Hprof文件分析:hprof文件主要来源是ddms,使用MAT工具将hprof文件进行转义,测试及操作场景很重要,需要根据场景进行相应的操作。