
Monkey 命令和事件等综合运用
adb shell monkey -p cn.mopon.film(替换要测试的包名) --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000>d:\monkeyLog.log
Monkey 测试可以发现的问题
Android 平台应用程序可能产生以下四种 Crash:
▲ App 层(JAVA 应用程序):
1、Force Close Crash
2、ANR Crash
▲ Native 层(本地框架):
3、Tombstone Crash(Native Crash)
▲ Kernel 层(LINUX 内核空间):
4、Kernel Panic
Money 日志定位问题
1 .monkey 作长时间稳定性测试时,由于无人值守,所以测试的结果主要靠日志来看,典型 Monkey 测试日志文件输出,如下:

//主要 Log 文件说明
anr目录:从手机/data/anr导出的日志,保存发生anr crash 时的相关信息;
dontpanic 目录:从手机/data/dontpanic/导出的日志,保存发生 Kernel Panic 时的相关信息;
Tombstone 目录:从手机 /data/tombstones/ 导出的日志 ,保存发生Tombstone Crash 时的错误信息;
dropbox 目录:从手机/data/tombstones/导出的日志,经过 dropbox 服务截取的部分 tombstones 错误信息;
BugReportLog.log:通过 adb shell bugreport 命令提取的系统各种信息;
MonkeyScreenLog.Log:保存 Monkey 测试过程、应用层错误信息,发生Native Crash 时,在此文件也会有记录;
2 .通过日志定位问题步骤
(1)在 MonkeyScreen.Log 日志文件搜索关键词“Fatal”、“Crash”、“ANR”定位到发生 Crash 的详细堆栈信息,或分析发生 Crash 前后的日志事件;

(2)检查 dropbox 目录下是否有相关 crash 日志信息,主要关注是否有以下 4 类 crash 错误信息:data_app_wtf,data_app_anr,data_app_crash,system_server_watchdog,如图:

(3)检查 tombstone 目录是否有生成日志,有的话说明发生过 native crash,
如图:

(4)通过 anr 目录中的日志文件或 BugReport.log 日志文件,进一步分析问题原因;
(5)通过上述日志信息,结合代码分析或通过搜索引擎寻找对应问题的可能错误,定位解决问题。
Monkey 后台运行
作用:使得 android 系统的设备脱离 PC,独立运行 monkey 和记录 logcat 和 monkey 日志。
方法如下:
1. 连接设备和 PC;
2 .adb shell 命令进入命令行模式;
3. 输入 logcat 命令(日志文件的地址使用> /sdcard/logcat_x.log),之后回车,如:logcat -v time >/sdcard/logcat_x.log
4 .输入 monkey 命令(日志文件的地址使用> /sdcard/monkey_x.txt),回车;
如 : monkey -p packageName --throttle 500 -v -v -v 1000000 >/sdcard/monkey.log 对于其余的 monkey 命令的参数可以自己添加
5 .此时 monkey 开始运行,拔掉设备和 PC 的数据线;
6 .同时需确认 logcat 和 monkey 的日志记录 ok(重新连接设备和 PC,通过 adb shell,进入 sdcard,使用 ls –l 查看,logcat 和 monkey 日志文件的大小不断变化即 ok)。
网友评论