一、参数分类
分为常规类参数、事件类参数、约束类参数和调试类参数四种
二、常规类参数
1、帮助类参数
monkey -h
2、日志级别
adb shell monkey -v <event-count>
-v:打印日志信息,每个-v将增加反馈级别,-v越多,日志越详细,最多支持三个,例:
adb shell monkey -v -v -v 200
-v:0级,除启动提示、完成测试和最终结果外提供较少信息
-v -v:1级,提供较详细的测试信息,如逐个发送Activity的事件
-v -v -v:2级,提供更详细的安装信息,如测试中被选中或未被选中的Activity
200:随机事件数量为200
三、事件类参数
说明:事件类参数的作用是对随机事件进行调控,从而使其遵照设定运行,如设置各种事件的百分比、设置事件生成所使用的种子值等。频率参数主要限制事件执行的时间间隔。
monkey百分比事件:
0:触摸(点击)事件百分比,即参数--pct-touch
1:手势(滑动)事件百分比,即参数--pct-motion
2:缩放事件百分比,即参数--pct-pinchzoom
3:轨迹球事件百分比,即参数--pct-trackball
4:屏幕旋转事件百分比,即参数--pct-rotation
5:基本导航事件百分比,即参数--pct-nav
6:主要导航事件百分比,即参数--pct-majornav
7:系统按键事件百分比,即参数--pct-syskeys
8:Activity启动事件百分比,即参数--pct-appswitch
9:键盘唤出隐藏事件百分比,即参数--pct-flip
10:其他事件百分比,即参数--pct-anyevent
1、执行指定脚本和app
(1)指定脚本
格式:adb shell monkey -f <scriptfile> <event-count>
例:adb shell monkey -f /mnt/sdcard/test1
(2)指定APP
adb shell monkey -p 包名
2、伪随机数生成种子值
使用 -s命令可以重复执行之前的伪随机操作。本身每次执行伪随机事件操作也会默认生成一个seed值
格式:adb shellmonkey -s <seed> <event-count>
例:adb shell monkey -s 6666 -v 200
说明:随机执行200次事件,并生成种子值6666,如果下次还需要重复上次的事件操作,则再次运行adb shell monkey -s 6666 -v 200则会跟前次事件操作步骤一模一样
用于复现问题好用
3、设置间隔时间
如果你希望在每一个指令之间加上固定的间隔时间,可以用--throttle(注意,前面是--)命令。
格式:adb shell monkey --throttle <milliseconds>
示例:adb shell monkey --throttle 3000 5
说明:--throttle:后面接时间,单位为ms(<milliseconds>),表示事件之间的固定延迟(即执行每一个指令间隔的时间),若不接该选项,monkey将不会延迟。
4、调整触摸事件百分比
如果你希望调整触摸事件的百分比,记住使用--pct-touch。
格式:adb shell monkey --pct-touch
示例:adb shell monkey -v -v --pct-touch 30 200
将触摸事件百分比调为30%
5、调整手势事件百分比
格式:adb shell monkey --pct-motion
示例:adb shell monkey -v -v --pct-motion 20 200
将手势事件百分比调为20%
adb shell monkey --pct-touch 30 --pct-motion 40 200 同时将触摸事件百分比调为30%,手势事件百分比调为40%
6、调整应用启动事件的百分比
格式:adb shell monkey --pct-appswitch <percent>
--pct-appswitch:后面接应用启动事件百分比。
示例:adb shell monkey -v --pct-appswitch 40 200 200个随机事件中40%为启动事件
应用启动事件(即activity launches)俗称打开应用,通过调用startActivity()方法最大限度地开启该package下的所有应用。
7、调整屏幕旋转事件百分比
格式:adb shell monkey --pct-rotation <percent>
--pct-rotation 后面接屏幕旋转事件的比例值。
示例:adb shell monkey -v --pct-rotation 18 200 200个随机事件18%为屏幕旋转事件
8.其他参数
四、约束类参数
1、包约束
-p:后面接一个或多个包名(<allowed-package-name>),如果应用需要访问其他包里的Activity,那相关的包也需要在此同时指定。如果不指定任何包,monkey将允许系统启动全部包里的Activity。
格式:adb shell monkey -p <allowed-package-name> <event-count>
示例:adb shell monkey -p com.android.settings 500 设置中执行500个随机事件
adb shell monkey -p com.android.settings -p info.woodsmall.calculator 500 设置和计算器中执行500个随机事件
2、activity类约束
如果你希望将monkey限制在一个或几个类别中,使用如下命令:
格式:adb shell monkey -c <main-category> <event-count>
以下命令表示运行Intent.CATEGORY_LAUNCHER类别的Activity并发送1000个随机事件。
adb shell monkey -c Intent.CATEGORY_LAUNCHER 1000
五、调试类参数
1、应用程序崩溃后继续发送事件
如果你希望monkey在应用程序崩溃后继续发送事件,则需要用到--ignore-crashes命令
格式:adb shell monkey --ignore-crashes <event-count>
在设置此选项后,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到上述崩溃或异常将停止运行。
2、超时错误继续发送事件
如果你希望monkey在任何超时错误发生后继续发送事件,则需要用到--ignore-timeouts命令。
格式:adb shell monkey --ignore-timeouts
<event-count>--ignore-timeouts:在设置此选项后,当应用程序发生任何超时错误(如ANR,即Application Not Responding)时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到此类超时对话框将停止运行。
3、应用程序权限错误发生后继续发送事件
如果你希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions命令。
格式:adb shell monkey --ignore-security-exceptions
<event-count>--ignore-security-exceptions:在设置此选项后,当应用程序发生任何权限错误(如启动一个需要某些权限的Activity)时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到此类权限错误将停止运行。
4、其他