![02017f4c7c5b9ed6de40f2cd21b1d41a.png](https://i-blog.csdnimg.cn/blog_migrate/1d5af43dd141cb57af0da1e437b343aa.jpeg)
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android
Monkey 在开发中非常常见,本篇主要梳理monkey 测试相关知识点。主要包括以下内容
- 整机 monkey 测试命令
- app monkey 测试命令
- 判断Monkey 测试方法
- 停止monkey的方法
- Monkey 使用手册
- Monkey Crash Log 分析
- Monkey ANR Log 分析
- Monkey 测试中关机
- 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 monkey -p com.qiyi.video(要测试app的包名) 999999
忽略Crash ANR 、安全异常等测试方法。
adb shell monkey -p com.qiyi.video(要测试app的包名) --ignore-crashes --ignore-timeouts --ignore-security-exceptions --throttle 100 -v 999999999 > monkey_log.txt
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:甥敳獲Administrator>adb shell ps |findstr monkeyshell 18333 273 1627720 34672 binder_thr 759b3b8884 S com.android.commands.monkeyC:甥敳獲Administrator>adb shell kill -9 18333
![82419ca008d2c3fac77f2d5e7202c724.png](https://i-blog.csdnimg.cn/blog_migrate/c35f61cd2245012effa4fc005125556d.jpeg)
停止monkey 测试的方法
- b. 重启手机
此种方案简单暴力。
5. Monkey 使用手册
monkey 使用参数命令帮助手册命令如下:adb shell monkey -help
![d153386c4b0b16b3ecfa9e0d66d59441.png](https://i-blog.csdnimg.cn/blog_migrate/299168953f37fe55200387b0e4a88835.jpeg)
Monkey 参数使用手册
- -v 表示Log信息登记
- --throttle 表示毫秒数
- -s 表示发送随机数种子
- -p 表示测试Monkey app 包名
![93e787c79496022887e8144e9c5af4d6.png](https://i-blog.csdnimg.cn/blog_migrate/c3741ab456a42b89a1aa159851021105.jpeg)
monkey 部分参数
6 .Monkey Crash Log 分析
在抓取的adb log中,使用文本编辑器(建议使用Notepad++,匹配大小写)打开,
搜索一下关键字 CRASH:
![22ee321e6ac420b0b0477c06019a4952.png](https://i-blog.csdnimg.cn/blog_migrate/f6a8dfdd72f9b4df2bb42bfa15e6c79b.jpeg)
Monkey log 分析举例
7 .Monkey ANR Log 分析
在抓取的adb log中,使用文本编辑器(建议使用Notepad++,匹配大小写)打开,
搜索一下关键字 ANR in 或 者 NOT RESPONDING
![96a94aae9cc8715eeaa25b2fd72af33c.png](https://i-blog.csdnimg.cn/blog_migrate/f58138c53600534deca454d4329d081e.jpeg)
ANR Log 分析
如有ANR还需要将 data/anr 下的trace 文件pull 出来辅助分析ANR原因。
导出ANR 文件的命令如下:
adb pull data/anr .
![85b75d3f3c277828641155da21537285.png](https://i-blog.csdnimg.cn/blog_migrate/3adb33281b96de0426fe0e165f82567f.jpeg)
导出 ANR 文件
8.Monkey 测试中关机
Monkey 测试过程中关机可以先从以下方法入手。
1.搜索关键字battery_level 查看电池电量。
通过次关键字可以在events_log 中查看关机时候的电池电量信息、电池电压信息、电池温度信息。
![a878e425251df3e471232dc06f37e452.png](https://i-blog.csdnimg.cn/blog_migrate/e0f162d668fd649ba6f144c79f9a2b2e.jpeg)
电池相关信息
9.Monkey 运行机制
因为系统中已经将monkey.jar打包到 system/framework/中 ,故monkey命令可以在手机上直接运行。
![16ff779221d4e76f3be9a6d85a17d0eb.png](https://i-blog.csdnimg.cn/blog_migrate/ccfbeeba64456db29353a6b5a2ef3bbe.jpeg)
monkey jar 包文件
![d75d7dbe8d24dfb83d5bd7b51e18353e.png](https://i-blog.csdnimg.cn/blog_migrate/937f1ea8d1f6ea9abda7c4303bc3e93e.jpeg)
手机 monkey jar包存放路径
执行monkey命令的脚本存放地址在system/bin目录下,通过此脚本,既可以开始执行monkey 相关的命令测试。
![e5c503cd89a330eb8fd13d40fca121ae.png](https://i-blog.csdnimg.cn/blog_migrate/5441b0ddffbc30cf70f6b8b4971d5a7e.jpeg)
monkey 脚本
![748cdb601d29b2706106e05ec48615a4.png](https://i-blog.csdnimg.cn/blog_migrate/97cfd274c38ef48750027ce6d0834e66.jpeg)
手机monkey命令脚本存放地址