一、Monkey测试简介
Monkey通过模拟用户触摸屏幕、滑动Trackball、按键等程序来对设备上的程序进行压力测试,检测程序多久会发生异常。
一般异常分为以下三种:无响应(ANR)、奔溃(crash)、闪退。奔溃和闪退的区别在于前者有提示框,而后者没有,直接跳到系统桌面上。
二、Monkey常用场景命令
● 参数: -p
用于约束限制,指定一个或多个包。设置后则系统只启动指定的APP,不指定包则会启动系统内的所有APP.
指定一个包:adb shell monkey -p com.moonbasa 1000
指定多个包:adb shell monkey -p com.moonbasa -p com.moonbasa.taylorsage 1000
不指定包:adb shell monkey 1000
(用monkey模拟1000次随机用户事件)
● 参数: -S (同一seed值可重复事件序列,方便复现问题。seed值由测试者自由指定)
用于指定伪随机数生成器的seed值,如果值相同则2次测试所产生的事件序列也一样。
1.adb shell monkey -p com.moonbasa -s 188 100
2.adb shell monkey -p com.moonbasa -s 188 100
1,2两次测试的效果是相同的,因为模拟的用户操作序列是一样的。
● 参数: -V
用于指定反馈信息级别(日志详细程度),总共分为三个级别
-V Level0 缺省值,仅提供启动提示、测试完成和最终结果等少量信息
-V -V Level1 提供较为详细的日志,包括每个发送到Activity的事件信息
-V -V -V Level2 最详细的日志,包括了测试中选中/未选中的Activity信息
例:adb shell monkey -p com.moonbasa -v -v 1000.
(用monkey模拟1000次随机用户事件,输出的日志级别为Level1)
● 参数:--throttle <毫秒>
用于指定用户操作(事件)间的时延,单位是毫秒
例:adb shell monkey -p com.moonbasa --throttle 3000 1000
(用monkey模拟1000次随机用户事件,事件之间有3秒的延迟)
● 参数:--randomize -throttle
事件间插入随机延迟,范围为0到throttle设置的值
例:adb shell monkey -p com.moonbasa --throttle 5000 --randomize -throttle 1000
(执行1000次的monkey随机事件,事件间隔0~5秒)
● 参数:
--pct-{+事件类别}{+事件类别百分比}
参考文献:https://www.cnblogs.com/bydzhangxiaowei/p/8136491.html
https://blog.csdn.net/u011649536/article/details/45043781