Monkey的日志对于分析脚本的执行情况十分必要。
Monkey 日志由以下几部分组成:
测试命令信息:随机种子 seed、运行次数、可运行应用列表、各事件百分比。
1. Monkey 日志详解
Monkey 日志由以下几部分组成:
测试命令信息:随机种子 seed、运行次数、可运行应用列表、各事件百分比
Adb shell monkey –v 200
-v代表日志的级别,最多3个-v,分别0、1、2几个级别
1.1 Monkey的日志
考虑日志的存放位置,便于查看
输出到本地pc上:
adb shell monkey -v 50 > F:\monkeylog.txt
1.3 结果详解
使用 Monkey 进行测试结束后,我们关注的是应用在测试中是否出现崩溃或无响应这类问题。测试结果可以通过如下方法判断:
- 在日志中搜索“CRASH”,如果搜到,可以判断 App 在测试过程中发生过崩溃问题;
- 在日志中搜索“ANR”,如果搜到,可以判断 App 在测试过程中发生过无响应的问题;
可以把这些关键字,连同其上下文,包括 Java 异常信息和其他相关信息一起提交。其中,Java 异常信息主要有以下类型:
- 算术异常类:ArithmeticExecption
- 空指针异常类:NullPointerException
- 类型强制转换异常:ClassCastException
- 数组负下标异常:NegativeArrayException
- 数组下标越界异常:ArrayIndexOutOfBoundsException
- 违背安全原则异常:SecturityException
- 文件已结束异常:EOFException
- 文件未找到异常:FileNotFoundException
- 字符串转换为数字异常:NumberFormatException
- 操作数据库异常:SQLException
- 输入输出异常:IOException
- 违法访问错误:IllegalAccessError
- 内存不足错误:OutOfMemoryError
- 堆栈溢出错误:StackOverflowError
保存到手机上
root@shamu:/ # monkey -v 20 > /sdcard/monkeylog.txt
root@shamu:/ # cd sdcard
root@shamu:/sdcard # ls monkey*
monkeylog.txt
1|root@shamu:/sdcard # more monkeylog.txt
1.2 对日志的类型(常规日志、错误日志)进行区分
1.日志的标准输出,2.错误流(信息)
C:\Users\Leo>adb shell monkey -v 50 1>F:\1monkeylog.txt 2>F:\monkeyerror.txt
2. 复现问题
如果需要复现问题,可以在日志中找到当时执行的 Seed 值,再次构建 monkey命令运行几次。构建命令时,seed 值自定义,定义与第一次运行相同。程序运行的初始界面也与第一次运行相同。后续回归问题也用同一个命令,seed 值保持相同。 如果问题不易复现,需要多运行几次,或多运行一段时间。
学习路线如下