monkey执行方式:
在adb里执行monkey(adb shell monkey.......)
在安卓里执行monkey(先adb shell进入安卓,然后再执行monkey......)退出:exit
adb获取包名的方法:
法一:运行APP,然后输入命令即可。
cmd状态下:adb shell dumpsys window | findstr mCurrentFocus
shell状态下:先adb shell,然后dumpsys window | findstr mCurrentFocus
基本参数
1、-p参数:指定要测试的包名
例:adb shell monkey -p cn.mopon.file 2000
-p:执行包名,可以多个包名 -p xxx -p xxx 2000
cn.mopon.file:包名。获取方法:运行APP,然后cmd状态下:adb shell dumpsys window | findstr mCurrentFocus
2000:操作次数
adb shell monkey 2000:不指定包名
2、-v:指定日志输出级别,monkey输出日志有3个级别,通过-v参数来指定
-v 第一级别;-v -v 第二级别;-v -v -v 第三级别
日志第一级别:可缺省,仅提供启动提示、测试完成和最终结果等少量信息
adb shell monkey -p cn.mopon.film -v 2000 >E:monkey.log
日志第二级别:提供较为详细的日志,包括每个发送到Activity的信息
adb shell monkey -p cn.mopon.film -v -v 2000 >E:monkey.log
日志第三级别:提供更详细的日志,包括了测试中选中/未选中的Activity信息
adb shell monkey -p cn.mopon.film -v -v -v 2000 >E:monkey.log
3、-s:用于指定伪随机数生成器的值,如果send值相同,则两次Monkey测试所产生的事件序列也相同,用于复现问题
测试1:adb shell monkey -p cn.mopon.film -s 10 2000
测试2:adb shell monkey -p cn.mopon.film -s 10 2000
4、--throttle:不同事件之间的间隔时间,单位ms
adb shell monkey -p cn.mopon.film -v -v -v --throttle 500 2000 >E:monkey.log
发送的事件类型参数
Monkey的事件类型共11种:触摸(Touch)、手势(motion),二指缩放(pinchzoom)、轨迹(trackball)、旋转(rotation),基本导航(nav)、主要导航事件(majornav)、系统按键(syskeys)、启动activity(appswitch)、键盘事件(flip)和其他类型事件(anyevent),在日志中分别用0-10来表示
https://www.cnblogs.com/gongxr/p/10650799.html
adb shell monkey -p cn.mopon.film -v -v -v --throttle 500 --pct-touch 20 --pct-pinchzoom 30 2000 >E:monkey.log 设置触摸20%,二指缩放30%
调试选项参数
--ignore-crashes:指即使应用程序崩溃(Force&Close错误),Monkey依然会发送事件,直到事件计数达到指定的次数为止。
adb shell monkey -p cn.mopon.film --ignore-crashes 2000 即使应用程序崩溃,Monkey依然会发送事件,直到事件计数达到2000次
--ignore-timeouts:指app在发生ANR(Application No Responding超时)错误时,Monkey是否停止运行。如果使用--ignore-timeouts参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成
adb shell monkey -p cn.mopon.film --ignore-timeouts 2000
--ignore-security-exceptions:指app发生许可证书错误时,Monkey依然继续发送事件,直到事件数目达到目标值为止
adb shell monkey -p cn.mopon.film --ignore-security-exceptions 2000
--kill-process-after-error:指app发生错误时,应用程序停止运行并保持在当前状态,系统不会结束该应用程序的进程
adb shell monkey -p cn.mopon.film --kill-process-after-error 2000
--ignore-native-crashes:忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止
--monitor-native-crashes:监视系统中本地代码发生的崩溃
综合性运用示例:
adb shell monkey -p cn.mopon.film(替换要测试的包名) --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000 > g:monkeyLog.log
monkey测试,一次执行多久:一次执行8-10小时,伪随机事件在35万-26万次左右