1. 整机 monkey 测试命令
  2. app monkey 测试命令
  3. 判断Monkey 测试方法
  4. 停止monkey的方法
  5. Monkey 使用手册
  6. Monkey Crash Log 分析
  7. Monkey ANR Log 分析
  8. Monkey 运行机制


1. 整机 monkey 测试命令

整机 测试 忽略 ​​crash timeout security-exceptions​​​等导致的monkey测试中断,并将​​Log​​保存到指定文件中。

​adb shell monkey --ignore-crashes --ignore-timeouts --ignore-security-exceptions --throttle 100 -v 999999999 > monkey_log.txt​

2. app monkey 测试命令

执行​​app​​​测试,如遇到​​crash​​​会打印出​​crash​​​信息,方便我们解决​​crash​​​。​​adb shell -p com.qiyi.video(要测试app的包名) 999999​

3. 判断Monkey 测试方法

/**
* Returns true if Monkey is running.
*/
public static boolean isMonkeyRunning() { return ActivityManager.isUserAMonkey();
}

4. 停止monkey的方法

  • a.通过查看进程,然后​​kill​​掉​​monkey​​进程​​monkey​​进程的命令​​adb shell ps |findstr monkey​​, 通过稍等进程 id( ​​adb shell kill -9 18333(monkey进程ID)​​),实现停止​​monkey​​测试。
C:\Users\Administrator>adb shell ps |findstr monkey
shell 18333 273 1627720 34672 binder_thr 759b3b8884 S com.android.commands.monkey
C:\Users\Administrator>adb shell kill -9 18333


停止monkey 测试的方法

  • b. 重启手机

此种方案简单暴力。

5. Monkey 使用手册

​monkey​​​ 使用参数命令帮助手册命令如下:​​adb shell monkey -help​


Monkey 参数使用手册

  • ​-v​​ 表示​​Log​​信息登记

  • ​--throttle​​ 表示毫秒数
  • ​-s​​ 表示发送随机数种子
  • ​-p​​ 表示测试​​Monkey app​​ 包名


monkey 部分参数

6 .Monkey Crash Log 分析

在抓取的​​adb log​​​中,使用文本编辑器(​​建议使用Notepad++,匹配大小写​​)打开,

搜索一下关键字 CRASH:


Monkey log 分析举例

7 .Monkey ANR Log 分析

在抓取的​​adb log​​​中,使用文本编辑器(​​建议使用Notepad++,匹配大小写​​)打开,

搜索一下关键字 ANR in 或 者 NOT RESPONDING


ANR Log 分析

如有​​ANR​​​还需要将 ​​data/anr​​​ 下的​​trace​​​ 文件​​pull​​​ 出来辅助分析​​ANR​​原因。

导出​​ANR​​​ 文件的命令如下:​​adb pull data/anr .​


导出 ANR 文件

8.Monkey 运行机制

因为系统中已经将​​monkey.jar​​​打包到 ​​system/framework/​​​中 ,故​​monkey​​命令可以在手机上直接运行。


monkey jar 包文件


手机 monkey jar包存放径

执行​​monkey​​​命令的脚本存放地址在​​system/bin​​​目录下,通过此脚本,既可以开始执行​​monkey​​ 相关的命令测试。


monkey 脚本


手机monkey命令脚本存放地址