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