川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

Monkey日志分析及内存泄露方法

作者:川石学院 日期:2022-09-14 17:27:18 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“Monkey日志分析及内存泄露方法”。

Monkey日志分析及内存泄露方法(图1)

  monkey日志分析

  1、程序无响应的问题:在日志中搜索“ANR”。

  2、崩溃问题:在日志中搜索“Exception“。

  看前后执行事件进行复现,如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。

  Monkey执行中断,在log的最后也能查看到当前已执行的次数。

  monkey内存泄露

  1.内存泄露发现方法

  执行monkey测试时有时会有内存泄露情况,可以进行排查。

  a.手机弹出out of memory对话框--基本确定有内存泄露。

  b.手机没有提示但是实际有内存泄露:排除方法通过logcat文件GC输出lgo信息,搜关键词GC,如果有下面四个中的一个,就可能存在内存泄露。(可以打开两个命令窗口,一个执行adb logcat,再执行monkey,待monkey结束后,ctrl+c中断log抓取)。

  GC_FOR_ALLOC, 因为在分配内存时内存丌够引发的。

  GC_EXPLICIT, 表明GC被显式请求触发的,如System.gc调用。

  GC_CONCURRENT, 表明GC在内存使用率达到一定的警戒值时,自动触发。

  GC_BEFORE_OOM, 表明在虚拟机抛出内存丌够异常OOM之前,执行最后一次回收内存垃圾。

  2.发现内存泄露--内存报告分析(利用hprof参数的内存快照生成内存报告)

  在发现内存泄露后,可以执行相同的monkey,只需多加一个参数--hprof

  adb shell monkey -p 包名 --hprof --throttle 100 --pct-touch 50 --pct-motion 50 -v -v -v 1000 >c:\monkey.txt

  如果指定了这个选项,monkey会在发送时间的前后生成app内存快照文件,一般会在手机设备的/data/misc目录下生成hprof的文件。(注:/data/misc 需要root权限,可以在手机上安装个RE查看或通过手机助手查看)

  ps:文件转换:配置monkey测试时的sdk-tools下查看是否有hprof-conv命令,在命令行输入hprof-conv -help得知文件转化用法,直接转化就行,由.hprof转化成.conv格式。

  转化后的文件用eclipse的Memory Analyzer tool(MAT)查看,可以点击 Reports->Leak Suspects链接来生成报告。


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-09-14 17:27:18
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-09-14 17:27:18
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-09-14 17:27:18
  • 建筑工程专业朱同学成功转行为软件测试人!2022-09-14 17:27:18
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-09-14 17:27:18
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-09-14 17:27:18
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-09-14 17:27:18
  • 文科生转行软件测试照样拿下高薪15K!2022-09-14 17:27:18
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-09-14 17:27:18
  • 毕业1年,迷茫的他最终选择转行软件测试2022-09-14 17:27:18