51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2527|回复: 1
打印 上一主题 下一主题

APP稳定性测试:monkey日志分析及内存泄漏分析

[复制链接]
  • TA的每日心情
    无聊
    13 小时前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-9-29 11:28:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    一.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链接来生成报告。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏2
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-21 22:07 , Processed in 0.062378 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表