前戏
参数分类:常规类参数,事件类参数,约束类参数,调试类参数
常规类参数:常规类参数包括帮助参数和日志信息参数,帮助参数用于输出monkey命令使用指导,日志信息参数将日志分为三个等级,级别越高,日志的信息越详细
帮助类参数
monkey -h
adb shell monkey -h
日志级别
-v:打印出日志信息,每个-v将增加反馈信息的级别,-v越多,日志信息越详细,目前最多支持三个-v
adb shell monkey -v 200
adb shell monkey -v -v -v 200
一个-v:除启动提示,测试完成和最终结果外提供较少信息
两个-v:提供较详细测试信息,如逐个发送到Activity的事件
三个-v:提供更详细安装信息,如测试中被选中或未被选中的
事件类参数
事件类参数的作用是对随机事件进行调控,从而使其遵照设定运行,如设置各种事件的百分比,设置事件生成所使用的种子值等。频率参数主要限制事件执行的时间间隔。
伪随机数生成种子值
使用-s命令可以重复执行之前的伪随机操作,本身每次执行伪随机事件操作也会默认生成一个seed值
adb shell monkey -s 88 200
-s后面的88随便定义,下次继续执行adb shell monkey -s 88 200这个命令就和之前跑的一样(试了不一样)
设置间隔
如果你希望在每一个指令之前加上固定的间隔时间,可以用--throttle(前面是两个--)命令
adb shell monkey --throttle 10000 6
--throttle:后面接时间,单位为ms,表示事件之间的固定延迟(既每执行每一个指令间隔的时间),若不接该选项,monkey将不会延迟
调整触摸事件百分比
如果你希望调整触摸事件的百分比,记住使用--pct-touch
adb shell monkey -v --pct-touch 50 200
--pct-touch后面接触摸事件百分比
调整手势事件百分比
adb shell monkey -v --pct-motion 40 200
执行两个事件的百分比
adb shell monkey -v --pct-motion 40 --pct-touch 30 200
调整应用启动事件的百分比
如果你希望调整应用启动事件的百分比,记住使用--pct-appswitch
adb shell monkey -v --pct-appswitch 50 200
--pct-appswitch后面接应用启动事件百分比。应用启动事件百分比,俗称打开应用。通过调用startActivity()方法最大限度的开启该package下的所有应用
调整屏幕旋转事件百分比
adb shell monkey -v --pct-rotation 70 200
--pct-rotation后面接屏幕旋转事件的比例值
约束类参数
包约束
-p:后面接一个或多个包名,如果应用需要访问其他包里的Activity,那相关的包也需要在此同时指定,如果不指定任何包,monkey将允许启动全部包里的Activity
adb shell monkey -p 包名 事件数
adb shell monkey -p com.tal.kaoyan 200
指定多个包名:
adb shell monkey -p com.tal.kaoyan -p com.tencent.mm 200
调试类参数
应用程序崩溃后继续发送事件
如果你希望monkey在应用程序崩溃后继续发送事件,则需要用到--ignore-crashes命令
adb shell monkey --ignore-crashes <event-count>
在设置此选项后,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成,如果不设置此选项,monkey遇到上述崩溃或异常将停止运行
超时错误继续发送事件
如果你希望monkey在任何超时错误发生后继续发送事件,则需要用到--ignore-timeouts命令
adb shell monkey --ignore-timeouts <event-count>
在设置此选项后,当应用程序发生任何超时错误,monkey将继续运行直到计数完成,如果不设置此选项,monkey遇到上述问题将停止运行
应用程序权限错误发生后继续发送事件
如果你希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions命令
adb shell monkey --ignore-security-exceptions <event-count>
monkey日志管理
保存在pc中
adb shell monkey [option] <count> >d:monkey.txt
例如:
adb shell monkey -v -v 100 >d:monkeylog.txt
保存在手机上
adb shell
monkey -v 100 >/sdcard/monkeylog.txt
先进入到shell里面,在执行monkey命令
将标准流和错误流分开输入到不同的文件里
monkey [option] <count> 1>/mnt/sdcard/monkey.txt 2>/mnt/sdcard/error.txt