手机稳定性monkey工具
Monkey 简介
Monkey 在英文里地含义是“猴子”,在测试行业对应有一个术语叫“猴子测试”,那么什么是“猴子测试”
- Android自带命令行工具,运行在模拟器或实际设备中
- 向被测应用发送伪随机事件流(如按键、触屏、手势等)
- 通过 monkey 用随机重复的方式来对应用程序进行一些稳定性、健壮性方面的测试
Monkey 原理
- 利用 socket 通讯(Android 客户端和服务器以 TCP/UDP 方式)
- 使用的事件流数据流是随机的,不能自定义
- monkey 是用 Java 语言写成,名为 Monkey.jar
- 通过名为 monkey 的 shell 脚本启动执行,shell脚本的存放路径为: /system/bin/monkey
adb shell monkey -p com.parkingwang.business --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 -s 12358 --throttle 200 --ignore-crashes --ignore-timeouts -v
80000>D:\专项测试\log.txt
调试参数
以下命令主要用于控制在 monkey 命令执行过程中的一些调试选项。 其中 --ignore-crashes 和 --ignoretimeouts 在长时间运行(比如下班后运行几个小时),可以保证在运行过程
中遇到崩溃等问题的时候,依然能执行剩余的指令。避免刚开始执行就遇到 Crash 和 ANR 导致后续指令不会执行。

指定时间类型百分比参数
monkey 随机发送的命令中包含各种随机事件,各种类型的事件按照某种比例产生。如果想要指定某种类型的事件 更多一些可以指定该事件的百分比。
# 单个参数设置百分比 adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 10000# 多个参数设置百分比 adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20
--pct-rotation 20 --pcttouch 30 --pct-motion 20 10000注意: 参数后面紧接百分比 ,百分比的总量不能大于 100%


日志分析
adb shell monkey -p com.parkingwang.business --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 -s 12358 --throttle 200 --ignore-crashes --ignore-timeouts -v
80000>D:\专项测试\log.txt
在命令的最后,加上 > 重定向到本地文件。 d:/monkey.log 放在 d 盘的根目录
那么对于 monkey 跑完之后,我们要如何去确认有没有出现 bug 呢? 最直观简单的方式就是通过搜索以下关键字:
- 1. 程序无响应的情况:搜索关键字“ANR in”
- 2. 崩溃的情况1:搜索关键字“CRASH”
- 3. 崩溃的情况2:搜索关键字“Exception”
- 4. 内存溢出的情况:搜索关键字“OOM”
- 5. 测试成功的情况:搜索关键字“Monkey finished”
- 6. 如果出现空指针 NullPointerException ,就一定是 bug

浙公网安备 33010602011771号