参数分类
常规类参数
事件类参数
约束类参数
调试类参数
常规类参数
常规类参数包括帮助参数和日志信息参数。帮助参数用于输出Monkey命令使用指导;日志信息参数将日志分为三个级别,级别越高,日志的信息越详细。
1.帮助类参数
monkey -h
2.日志级别
adb shell monkey -v
-v:打印出日志信息,每个-v将增加反馈信息的级别。-v越多日志信息越详细,不过目前最多支持3个-v,即:
事件类参数
事件类参数的作用是对随机事件进行调控,从而使其遵照设定运行,如设置各种事件的百分比、设置事件生成所使用的种子值等。频率参数主要限制事件执行的时间间隔。
1.执行指定脚本
adb shell monkey -f
eg: adb shell monkey -f /mnt/sdcard/test1
2.伪随机数生成种子值
使用 -s命令可以重复执行之前的伪随机操作。本身每次执行伪随机事件操作也会默认生成一个seed值
adb shell monkey -s
eg: adb shell monkey -s 666 100
3.设置间隔 如果你希望在每一个指令之间加上固定的间隔时间,可以用--throttle(注意,前面是--)命令。
adb shell monkey --throttle
eg: adb shell monkey --throttle 3000 5
--throttle:后面接时间,单位为ms(
4.调整触摸事件百分比 如果你希望调整触摸事件的百分比,记住使用--pct-touch。
adb shell monkey --pct-touch
eg: adb shell monkey -v -v --pct-touch 100 200
5.调整手势事件百分比
adb shellmonkey --pct-motion
eg: adb shell monkey -v -v --pct-motion 50 200
6.调整应用启动事件的百分比
如果你希望调整应用启动事件的百分比,记住使用--pct-app-switch。
adb shell monkey --pct-appswtich
7.调整屏幕旋转事件百分比
adb shellmonkey --pct-rotation
8.其他时间调整
约束类参数
1.包约束
-p:后面接一个或多个包名(
adb shell monkey -p
eg: adb shell monkey -p com.tal.kaoyan 500
adb shell monkey -p com.tal.kaoyan -p com.tencent.mm 500
2.activity类约束
如果你希望将monkey限制在一个或几个类别中,使用如下命令:
adb shell monkey -c
以下命令表示运行Intent.CATEGORY_LAUNCHER类别的Activity并发送1000个随机事件。
$ adb shell monkey -c Intent.CATEGORY_LAUNCHER 1000
调试类参数
1.应用程序崩溃后继续发送事件
如果你希望monkey在应用程序崩溃后继续发送事件,则需要用到--ignore-crashes命令
adb shell monkey --ignore-crashes
在设置此选项后,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到上述崩溃或异常将停止运行。
2.超时错误继续发送事件
如果你希望monkey在任何超时错误发生后继续发送事件,则需要用到--ignore-timeouts命令。
adb shell monkey --ignore-timeouts
3.应用程序权限错误发生后继续发送事件
如果你希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions命令。
adb shell monkey --ignore-security-exceptions
4.其他
Monkey参数应用综合案例
测试purcotton app Android版。测试希望通过Monkey来模拟用户的随机操作,检查被测应用是否会出现异常(应用崩溃或者无响应)。
adb shell monkey -p com.smile.purcotton #约束在purcotton上进行
--pct-touch 40 # 点击比例为40%
--pct-motion 25 # 滑动比例为25%
--pct-appswitch 10 # 切换页面比例为10%
--pct-rotation 5 # 屏幕旋转比例5%
-s 1666 # 设置seed值=1666
--throttle 400 # 延迟0.4S
--ignore-crashes #忽略闪退,崩溃
--ignore-timeouts #忽略超时
--ignore-security-exceptions #忽略权限
-v -v 200