做APP专项稳定性测试,Monkey是测试人必掌握的核心工具,没有之一。
很多测试新人只会敲一句简单的 Monkey 命令跑压测,跑完一堆日志看不懂、出了崩溃无法复现、压测操作杂乱无章,测不出真实问题。
而资深专项测试,会通过基础参数精准控流程、高阶参数定制压测场景,模拟用户真实随机操作,精准触发闪退、ANR、内存异常、偶现卡死等隐性问题。
今天这篇干货,从零拆解Monkey 基础参数 + 高阶实战参数,附带可直接复制的生产级命令、参数搭配逻辑、日志分析技巧,零基础也能直接落地工作!
一、先搞懂:什么是Monkey测试?
Monkey 是 Android SDK 自带的命令行稳定性压测工具,无需额外安装、零成本、易上手,是APP专项测试的核心工具。
其核心原理:模拟用户随机手势操作(点击、滑动、输入、跳转、横竖屏切换等),高速持续施压,长时间遍历APP各类场景,暴露隐藏的崩溃、ANR、内存泄漏、兼容异常等问题。
适用场景:版本迭代稳定性验收、回归压测、上线前全量稳定性校验、偶现bug暴力复现
二、Monkey 必备基础参数(入门必学)
基础参数是 Monkey 运行的核心,所有高阶命令都基于这些参数组合,每一个都是日常压测高频必用。
1. -p 指定测试包名(核心必选)
限定仅测试目标APP,避免系统其他应用被随机操作干扰测试结果,一个 -p 对应一个包名,多包需叠加参数。
语法:adb shell monkey -p 包名操作次数
示例:adb shell monkey -p com.xxx.app 1000
作用:指定目标APP,执行1000次随机操作,精准锁定测试对象
2. -v 日志级别参数(排查问题必备)
控制日志输出详细程度,一共3个等级,等级越高日志越详细,问题定位越精准,正式压测建议用最高级别。
•-v(Level1):基础日志,仅输出启动、结束、异常概要,适合简单测试
•-v -v(Level2):中级日志,输出事件类型、Activity跳转、核心操作流程
•-v -v -v(Level3):完整日志,输出所有操作细节、页面信息、报错堆栈,线上问题排查首选
3. -s 种子参数(复现bug神器)
Monkey 操作默认是随机的,出现偶现崩溃无法复现是最大痛点,而 -s 参数可以完美解决这个问题。
核心作用:固定随机事件序列,相同种子值 = 完全相同的操作步骤,bug 一键复现,精准定位偶现问题。
示例:adb shell monkey -p com.xxx.app -s 6666 10000
4. --throttle 延时参数(模拟真实用户)
默认 Monkey 操作无间隔、极速点击,和用户真实操作差异极大,容易测出无效问题。
作用:设置每次操作间隔时间(单位ms),模拟真人慢速操作,压测结果更贴合真实场景。
常用配置:--throttle 300(间隔0.3秒)、--throttle 500(间隔0.5秒)
三、Monkey 高阶实战参数(专项测试进阶核心)
只会基础参数只能做简单乱点压测,高阶参数可以定制压测场景,精准控制操作类型、比例、容错规则,适配企业正式压测标准。
1. 事件比例参数(精准控制操作类型)
默认 Monkey 随机分配各类操作,无效操作多、核心场景覆盖少。通过事件参数可自定义各类操作占比,聚焦核心业务场景压测。
•--pct-touch触摸事件:设置点击、按压抬手操作占比,适配页面点击、按钮操作场景
•--pct-motion滑动事件:设置屏幕滑动、拖拽操作占比,适配列表滑动、页面切换场景
•--pct-trackball轨迹事件:适配光标移动、轻微滑动操作
•--pct-nav导航事件:模拟上下左右按键跳转操作
•--pct-syskeys系统按键:模拟返回、home、音量、锁屏等系统操作,测试后台驻留、页面状态稳定性
实战搭配:侧重用户高频操作,触摸60%+滑动20%+系统按键10%,剩余10%随机操作,贴合真实使用习惯
2. 崩溃容错高阶参数(持续稳定压测)
默认APP崩溃、ANR后 Monkey 直接终止,无法完成长时间稳定性压测,以下参数可跳过异常、持续执行。
•--ignore-crashes:忽略APP崩溃,闪退不终止,继续执行剩余操作
•--ignore-timeouts:忽略ANR无响应,页面卡死不终止压测
•--ignore-security-exceptions:忽略权限、证书、安全弹窗报错,避免弹窗阻塞压测
3. 调试终止参数(精准把控压测边界)
•--kill-process-after-error:出现异常后自动杀死进程,释放资源,避免APP卡死占用内存
•--monitor-native-crashes:监控原生层崩溃,捕获C/C++层底层闪退问题,覆盖深层稳定性bug
四、生产级完整组合命令(直接复制即用)
工作中不会单独使用单个参数,都是多参数组合使用,分享2套企业高频实战命令,适配日常迭代压测。
1. 常规稳定压测命令(推荐日常迭代)

参数解析:固定种子可复现、0.5秒真人间隔、忽略崩溃ANR、输出完整日志、1万次稳定压测
2. 高频操作专项压测命令(侧重用户高频场景)

适用场景:上线前全量稳定性验收,聚焦点击滑动高频操作,覆盖底层崩溃问题
五、Monkey日志核心报错关键词(10秒定位问题)
跑完压测不用逐行看日志,直接检索以下关键词,快速锁定所有稳定性问题:
•Crash:APP崩溃闪退
•ANR:应用无响应、页面卡死
•Exception:代码异常、逻辑报错
•NullPointerException:空指针异常(高频闪退原因)
•low memory:内存不足、内存泄漏风险
•Force Closed:程序强制退出
六、Monkey测试高频避坑指南
•坑1:不设置throttle延时:极速无脑点击,脱离用户真实场景,测出无效bug
•坑2:不使用-s种子参数:出现偶现崩溃无法复现,开发无法定位根因
•坑3:不用忽略异常参数:一次崩溃直接终止压测,无法完成长时间稳定性测试
•坑4:日志级别过低:报错无堆栈信息,只能看到崩溃,无法定位代码位置
•坑5:不导出日志:压测结束无留存数据,问题无法复盘、无测试依据
七、全文总结
Monkey 测试的核心能力,不在于会敲命令,而在于合理搭配基础+高阶参数,定制真实压测场景。
简单参数只能完成表面压测,高阶参数组合才能深挖隐性稳定性bug,这也是初级测试和专项测试的核心差距。
记住核心公式:包名+种子+详细日志+真实延时+容错参数+定制事件比例 = 专业级稳定性压测
熟练掌握这套参数体系,轻松搞定APP稳定性测试,精准覆盖99%的线上闪退、卡死、偶现异常问题!
干货福利
需要我整理一份《Monkey全套参数对照表+生产级压测命令模板+日志分析手册》?评论区回复【Monkey】,免费打包领取,直接套用工作!
💡福利放送
想要免费领取软件测试零基础入门教程、进阶学习文档、大厂面试真题、自学全套资料的朋友,直接扫描下方微信二维码添加好友领取!
进学习交流群,每日干货更新,在线答疑,结伴学习少走弯路~

“动动小手,点点关注呗~”🫰
夜雨聆风