monkey是android自带系统自带的程序,可以生成伪随机用户事件来模拟单击、双击、输入、滑动、拖动、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试和稳定性测试。
monkey命令格式:adbshellmonkey[options];其中options值有很多选项,可以在Monkey官网查看,也可以输入命令adbshellmonkey-help可以查看到其对应的所有值。event-count代表事件总数,该参数必须写到命令的最后边,且不可以省略。
基础选项:
-p用于约束限制,用此参数指定一个包,指定包后Monkey将被允许启动指定应用。
-v指定日志的详细程度,分Level1、Level2、Level3;-v默认值,仅提供启动提示,操作结果等少量信息,也就是Level1,比如adbshellmonkey-pxxx.xxx.xxx-v1;-v-v提供比较详细信息,比如启动的每个activity信息,也就是Level2,比如adbshellmonkey-pxxx.xxx.xxx-v-v1;-v-v-v提供最详细的信息,比如adbshellmonkey-pxxx.xxx.xxx-v-v-v1
-s伪随机数生成器的种子值,如果我们两次monkey测试事件使用相同的种子值,会产生相同的事件序列;如果不指定种子值,系统会产生一个随机值。种子值对我们复现bug很重要。
--throttle指定两次操作间的时延,单位为ms
--pct事件选项,一般格式为:--pct-事件名称事件百分比
调试选项:
由于monkey在测试app时,我们需要作长时间的稳定性测试,在测试过程中,app很可能因为碰到问题而崩溃,此时测试会停止,而达不到我们长期测试的目的,我们需要通过调试参数来让测试执行继续,主要的几个参数如下
--ignore-crashes指即使应用程序崩溃(Force&Close错误),Monkey依然会发送事件,直到事件计数达到指定的次数为止。
例:adbshellmonkey-pcn.mopon.film--ignore-crashes100000
--ignore-timeouts指app在发生ANR错误(无响应),Monkey依然会发送事件,直到事件计数完成。
--ignore-security-exceptions指APP发生许可证书错误时,Monkey依然继续发送事件,直到事件数目达到目标值为止。
示例:
adbshellmonkey-pcn.mopon.film-v-v-v–throttle300--pct-touch20–-pct-motion20--pct-nav20–pct-syskeys20--ignore-crashes--ignore-timeouts--ignore-security-exceptions3000>D:mokey_log.log
解释:制定应用程序cn.mopon.film,日志级别为超详细,操作之间间隔300ms,制定了触摸、手势、基本导航、系统按键事件且占比都为20%,且monkey运行过程发生程序崩溃、无响应、认证错误等情况,依然发送事件,直到事件数目为3000,最后将生成的日志文件保存在D盘,命名为monkey_log.log
以上内容为大家介绍了Monkey命令格式详解,希望对大家有所帮助。