monkey日志分析

一、Monkey 日志详解
        Monkey 日志由以下几部分组成:
                (1) 测试命令信息:随机种子 seed、运行次数、可运行应用列表、各事件百分比。                ​​​​​​​        
                (2) App 切换和 Activity 跳转:可以看到切换到了哪个 App,从哪个 Activity 跳转到了哪个 Activity,如果发生了异常,就可以看出是在哪个 App 和 Activity 中发生的。注:在允许一次测试多个应用时,会看到多次 App 切换;只测试一个应用时,一般只看到一次 App 切换,除非应用异常后重启。

        ​​​​​​​        
                (3) 伪随机事件流:记录各种随机操作及中间的延迟时间,主要是以下几种操作:

        ​​​​​​​                ​​​​​​​        ​​​​​​​       

                 
                (4) 异常信息:应用崩溃、无响应等异常相应信息。

        ​​​​​​​        

        ​​​​​​​        
                (5) 测试结果信息:完成事件数、其他信息。

        ​​​​​​​        

二、从日志中发现并提交 bug

        使用 Monkey 进行测试结束后,我们关注的是应用在测试中是否出现崩溃或无响应这类问题。测试结果可以通过如下方法判断:
                (1) 在日志中搜索“CRASH”,如果搜到,可以判断 App 在测试过程中发生过崩溃问题;
                (2) 在日志中搜索“ANR”,如果搜到,可以判断 App 在测试过程中发生过无响应的问题;
        我们可以把这些关键字,连同其上下文,包括 Java 异常信息和其他相关信息一起提交。其中,Java 异常信息主要有以下类型:
        算术异常类:ArithmeticExecption
        空指针异常类:NullPointerException
        类型强制转换异常:ClassCastException
        数组负下标异常:NegativeArrayException
        数组下标越界异常:ArrayIndexOutOfBoundsException
        违背安全原则异常:SecturityException
        文件已结束异常:EOFException
        文件未找到异常:FileNotFoundException
        字符串转换为数字异常:NumberFormatException
        操作数据库异常:SQLException
        输入输出异常:IOException
        违法访问错误:IllegalAccessError
        内存不足错误:OutOfMemoryError
        堆栈溢出错误:StackOverflowError

三、ANR 异常和 traces.txt 文件
        Monkey 日志中 ANR 相关信息不够详细,当发现 APP 运行中存在 ANR 问题时,我们还需要使用 adb pull 命令从被测设备的/data/anr 目录下导出名为traces.txt 的对应 log 文件,一并交给开发人员排查问题。命令如下:adb pull /data/anr/traces.txt D:\logs\logcat 日志

四、adb logcat 查看 Android 系统日志
        使用 monkey 进行测试时,还要注意 logcat 日志。这是 Android 系统日志,包含更详细的内容,可以帮助开发人员定位问题。如果要获取 logcat 日志,需要在执行 monkey 测试前开始记录 logcat 日志。完整步骤如下:
        (1) adb logcat -c 清理现有日志
        (2) adb logcat -v time > D:\logcat.log 开始记录日志
        (3) 运行 monkey 程序。运行 monkey 程序结束后,可以把 logcat 日志文件 logcat.log 也提交给开发作为定位问题的参考。

五、复现问题
        如果需要复现问题,可以在日志中找到当时执行的 Seed 值,再构建 monkey命令运行几次。构建命令时,seed 值自定义,定义成与第一次运行相同。程序运行的初始界面也跟第一次运行相同。后续回归问题也用同一个命令,seed 值保持相同。 如果问题不易复现,需要多运行几次,或多运行一段时间。

六、一次测试发现多个问题
        monkey 执 行 时 如 果 加 了 --ignore-crashes 和--ignore-native-crashes,App 出现崩溃退出后,还会自动重启并继续发送事件(否则 monkey 中断)。我们可以等 monkey 进程结束后,去日志里直接搜索 CRASH。可能会看到多处问题。所以加这两个选项可以帮助我们在一次测试中发现多处崩溃问题。monkey 执行时如果加了--ignore-timeouts,App 出现无响应后还会继续发送事件;我们可以等 monkey 进程结束后,去日志里直接搜索 ANR,可能会看到多处问题。所以加这个选项可以帮助我们在一次测试中发现多处无响应的问题。上述三个选项都加,则可能在一次测试中发现多处 CRASH 或 ANR 问题。

  • 10
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值