暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

西安川石 2022-09-08
979


每天一个测试技术

只需几分钟

川石信息 带你学点更好的




川石信息|腾讯课堂

免费试学 | APP测试


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链接来生成报告。




    今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!


    温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!


     往期回顾 

    性能测试中负载、压力、并发之间的区别


    扫码邀你加入

    软件测试群


    免费软件测试课

    川石课堂

    文章转载自西安川石,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论