美文网首页
Monkey结果分析

Monkey结果分析

作者: 闲酿星河 | 来源:发表于2018-05-29 16:00 被阅读241次

    Monkey命令实例

    adb shell monkey -p com.tiulo_sj --ignore-crashes --ignore-timeouts --throttle 300 -v -v -v -s 10 100>c:\log.txt  
    

    打开log.txt文件,文件开头显示了Monkey执行的seed值、执行次数和测试的包名。

    :Monkey: seed=10 count=100
    :AllowPackage: com.XXXXX

    若Monkey测试顺利执行完成,在log最后,会打印出事件执行次数和所花费的时间

    Events injected: 100
    :Sending rotation degree=0, persist=false
    :Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
    Network stats: elapsed time=9292ms (0ms mobile, 0ms wifi, 9292ms not connected)

    Monkey测试出现问题时,一般出错步骤如下:

    1. 找到出错原因
    2. 查看Monkey里面出错前的一些事件动作,并手动执行该动作。
    3. 若以上步骤还不能找出,设置相同seed值,将执行的monkey命令再执行一遍。

    分析时注意log中存在的 ANR、Exception、Switch、GC、crash几个单词
    通过查看log中的Switch找到该次崩溃、异常等问题执行的为哪一个Activity。
    如下可以看到该次执行的事件为com.XXXXX/.activiy.SplashActivit

    :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.XXXXX/.activiy.SplashActivity;end

    关于Monkey内存泄漏

    1. 测试时弹出 out of memory对话框
    2. 查看logcat中是否有GC相关字段(两个cmd窗口先运行logcat命令,再运行Monkey,Monkey结束后Ctrl C中断logcat抓取):
    • GC_FOR_ALLOC, 因为在分配内存时内存不够引发的
    • GC_EXPLICIT, 表明GC被显式请求触发的,如System.gc调用
    • GC_CONCURRENT, 表明GC在内存使用率达到一定的警戒值时,自动触发
    • GC_BEFORE_OOM, 表明在虚拟机抛出内存丌够异常OOM之前,执行最后一次回收内存垃圾

    发现内存泄漏后,添加参数--hprof执行相同Monkey获得对应profiling报告,一般会在手机设备的/data/misc目录下生成hprof的文件。

    相关文章

      网友评论

          本文标题:Monkey结果分析

          本文链接:https://www.haomeiwen.com/subject/pgdajftx.html