Monkey命令配置
- 针对9130的配置特点,Monkey命令的配置有如下要求:
- 无键盘:无键盘按键事件
- 无轨迹球:无轨迹球按键事件
- 无物理导航键:无基本导航事件
- 大部分事件为Touch和Motion
- 事件间隔发送时间1000
- 出现各种异常(崩溃异常、超时异常、安全异常)时Monkey继续运行
Monkey整机测试配置命令如下:
adb shell monkey --throttle 1000 -s 12345678 --pct-anyevent 0 --pct-trackball 0 --pct-nav 0 --pct-majornav 2 --pct-appswitch 2 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes –v –v 100000 > Monkey_log.txt
参数说明: --throttle 1000 Monkey发送事件的时间间隔
-s 12345678 Monkey发送事件的序列
--pct-anyevent 0 按键、不常用的设备按键事件百分比设为0
--pct-trackball 0 轨迹球事件百分设比为0
--pct-nav 0 基本导航(up、down、left、right)事件百分比设为0
--pct-majornav 2 主要导航(中间按键、回退按键、菜单)事件百分比设为2
(9130用了Menu键,所以不能设为0, 但又不能没有此事件)
--pct-appswitch 2 Monkey调用startActivity()方法的百分比设为2
--ignore-crashes 忽略崩溃异常
--ignore-timeouts 忽略超时异常
--ignore-security-exceptions 忽略安全异常
-v –v Monkey日志显示的详细级别 (有按键类型)
Count=10000 Monkey 发送事件的次数(根据情况设定)
单个或多个应用测试:需要在monkey 后加上应用程序的package名。–p 指定。其它命令查看可用adb shell monkey来查看详细参数。
Monkey测试结果分析
Monkey测试结果在两个文件中:
Monkey工具产生的输出(如Monkey_Log.txt)
adb logcat 产生的日志信息(如Logcat_Log.txt)
Monkey工具测试时会记录应用程序的两种非正常状态:Crash和Not Responding。下面将分别说明。
Crash
当应用程序在出现了Crash时,在Monkey_Log.txt文件中会有相应关键字CRASH产生。在CRASH中常见的异常为:
- java.lang.IllegalArgumentException
- java.lang.RuntimeException
- java.lang.NullPointerException
- java.lang.IndexOutOfBoundsException
- java.lang.NumberFormatException
- java.lang.SecurityException
- java.lang.OutOfMemoryError
- java.lang.IllegalStateException
- android.database.CursorIndexOutOfBoundsException
- android.database.sqlite.SQLiteException
- android.content.ActivityNotFoundException
我们只需要在Monkey_Log.txt文件中搜索关键字CRASH,就可以找到程序产生Crash的点。从该信息中,可以看出产生异常的应用、异常类型、Stack等信息。如下图:
将上图信息中的关键字符(异常状态):java.lang.IllegalStateException作为文件Logcat_Log.txt的搜索关键字,即可找到logcat日志里的上下文Crash异常信息。如下图:
Not Responding
当应用程序在出现了Not Responding时,在Monkey_Log.txt文件中会有相应关键字NOT RESPONDING产生,我们只需要在Monkey_Log.txt文件中搜索此关键字。即可找到程序产生Not Responding的点,从该信息中可以看出产生Not Responding的应用,和产生时各应用内存的使用情况等,如下图:
在此信息中有关键字符:ANR in process和keyDispatchingTimeout,在文件Logcat_Log.txt搜索这两个关键字就可以找到logcat日志中的Not Responding详细信息。如下图:
此信息还告诉我们:在data/anr/目录下产生了traces.txt文件。可分析此时各进程的内存情况。