Monkey 是 Android 平台内置的一款 UI 压力测试工具,通过向设备发送随机的用户事件流(如触摸、滑动、按键),可以有效发现应用程序的稳定性问题,是进行Android/iOS应用基础稳定性测试的常用手段。
Monkey 基础执行命令
一条典型且功能完整的 Monkey 测试命令如下,它将执行 10000 次随机事件:
adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\java_monkey_log.txt

核心参数详解
上述命令中几个关键参数的作用如下:
- -p 包名:指定要测试的目标应用包名。
- -s 500:设置随机数生成器的种子值(seed)。相同的 seed 值可以复现相同的事件序列,便于问题定位。
- --ignore-crashes / --ignore-timeouts:指示 Monkey 在遇到应用崩溃或 ANR(应用无响应)时继续执行后续测试。
- --monitor-native-crashes:监控并报告本地代码(C/C++)的崩溃。
- -v -v:设置日志详细程度为 Level 2,提供较为详细的执行信息。
- 10000:指定要发送的随机事件总数。
- > E:\java_monkey_log.txt:将命令行输出重定向到指定文件,方便后续分析。

异常处理策略调整
如果测试过程中遇到崩溃或超时导致测试提前停止,可以尝试移除 --ignore-crashes 和 --ignore-timeouts 参数,让 Monkey 在首次遇到严重问题时即停止,以便快速捕获问题现场。命令简化为:
adb shell monkey -p 包名 -s 500 -v -v 10000 > E:\java_monkey_log.txt
如何停止正在运行的 Monkey 测试
当需要手动终止 Monkey 测试时,可以通过 ADB 命令查找并结束其进程。
-
查找 Monkey 进程 PID:
首先,使用以下命令列出所有进程并筛选出 Monkey。
adb shell ps | findstr monkey
命令执行后,通常会返回一行包含进程 ID (PID) 和进程名的信息,例如 15248 monkey。
-
终止进程:
获得 PID(例如 15248)后,使用 kill 命令结束该进程。
adb shell kill 15248
自动化脚本:一键停止 Monkey
频繁手动输入命令效率较低,我们可以编写一个 Windows 批处理脚本 (stopMonkey.bat) 来自动完成查找和终止过程,这是提升运维与DevOps效率的小技巧。
@echo off
setlocal enabledelayedexpansion
:: 直接从命令输出获取并处理每一行
for /f "tokens=1,2,*" %%a in ('adb shell ps ^| findstr monkey') do (
set pid=%%a
set process_name=%%b
echo PID: !pid! - Process Name: !process_name!
:: 停止monkey,!process_name!就是你当前得进程号
adb shell kill !process_name!
)
pause

将以上代码保存为 stopMonkey.bat 文件,双击运行即可自动停止设备上所有正在运行的 Monkey 测试进程。
通过掌握以上基础命令、参数含义及进程管理方法,你便可以快速上手对 Android 应用进行 Monkey 稳定性测试。在实际测试中,通常只需调整 包名 和 测试次数 即可开始一次完整的随机压力测试。
|