利用monkey自动监控app内存泄露

内存泄露(OOM):是指不再使用的对象持续占有内存,造成内存空间的浪费。
工具和命令:

  • HPROF文件:HPROF可以监控CPU使用率,堆分配统计
  • MAT工具:用来打开HPROF文件,下载地址官方http://www.eclipse.org/mat/
    生成HPROF文件命令:adb shell am dumpheap <进程名> <保存路径>
    这个导出来的hprof文件不能直接被MAT查看,需要转换为MAT可读文件指令:
    hrpof-conv <原hprof文件路径> <转换后的hprof路径>
    查看应用内存命令:adb shell dumpsys meminfo <进程名>

基本测试步骤:
1、运行monkey或者固定自动化用例
2、监控内存值,如果出现过大等递增异常则保存hprof文件
3、对保存的hprof文件进行转化为MAT可读文件
4、使用MAT打开文件,对多个文件进行对比分析

自动监控内存值的shell脚本如下,mac用shell方便,windows可写批处理文件
利用monkey自动监控app内存泄露_第1张图片
#!/bin/bash
adb shell dumpsys meminfo com.snda.wifilocating | grep “Pss” | grep “Heap”
while true
do
var=adb shell dumpsys meminfo com.snda.wifilocating | grep "TOTAL" | grep -v "TOTAL SWAP PSS"
sleep 1
echo “$var” >> vivo_8-1.txt
done
可以把结果输出到文件里,然后把所有的值拷贝到excel里转换成折线图,这样就能一目了然的看出内存值的变化
打印出来的效果:
利用monkey自动监控app内存泄露_第2张图片
忽略上面空行,是我手动干预。

同时执行monkey命令:
adb shell monkey -v -v -v -p com.snda.wifilocating --throttle 500 10000 --pct-touch 30 --ignore-crashes --ignore-timeouts --ignore-security-exception > mxiaomi9-2.txt

shell 脚本执行如果遇到报错/bin/bash^M: bad interpreter: No such file or directory
解决方法参考:https://blog.csdn.net/mengzuchao/article/details/91043562

你可能感兴趣的:(专项测试)