咨询QQ:2083503238、1684129674、480934277(请勿重复咨询) 咨询微信:qiangfans
玩转Android monkey之多参数实战
- 2018-02-09 15:08:00
- 大管家
- 原创 1995 投稿得红包
monkey设置间隔时间
参数throttle用来控制执行速度,如果不加我们通过上次的执行发现速度比较快,也看不清。
语法:adb shell monkey -p 包名 --throttle 设置每次随机事件的时间间隔
(毫秒)随机事件次数
moneky seed种子
seed种子是干嘛的呢?很好理解,如果你想使得两次命令的执行轨迹一样,那就加上这个参数。比如,第一次你使用发现了一个bug,现在想重现一下,如果不加seed就是随机的,可能无法重现,加上seed就可以了。
PS:每次执行时初始界面要一致
语法:adb shell monkey -p 包名 --throttle 执行速度 -s seed种子 随机事件数
monkey指定某个动作
如果想使用monkey命令来做某一个动作,而不是N个动作混杂的,那就要通过参数来指定ta的动作,比如--pct-touch点击(触摸)动作。
语法:adb shell monkey -v -p 包名 --pct-touch 执行touch动作的百分比 随机事件次数
其中-v代表查看详细的结果,我们可以看到0代表touch百分比为100%执行,其余为0%。
思考:如果不加--pct-touch执行该命令会是什么样的结果呢?
这里大家可能会问到1-10代表啥呢?其实代表的是不同的操作动作,这里来list一下:
1:手势 --pct-motion
2:缩放 --pct-pinchzoom
3:轨迹球 --pct-trackball
4:屏幕旋转 --pct-rotation
5:基本导航事件,比如手机上的上、下、左、右的操作 --pct-nav
6:主导航事件,比如返回键、菜单键 --pct-majornav
7:系统导航事件,比如手机上的home键、拨号键、音量键等 --pct-syskeys
8:切换activity --pct-appswitch
9: 键盘翻转事件,举个场景就知道了,类似点击输入框,键盘弹起,点击其他区域,键盘收起 --pct-flip
10:其他事件 --pct-anyevent
monkey忽略崩溃和超时
为什么要有着两个参数呢?很简单,我们在使用app的时候经常会出现超时、卡死的状况,一旦出现这样的情况,monkey是不知道怎么办的!所以,需要我们给他指令才行, 一般就是给两个参数,忽略超时和忽略崩溃。
l 忽略超时参数:--ignore-timeouts
l 忽略崩溃(异常)参数:--ignore-crashes
语法:adb shell monkey -v -p 包名 --pct-touch 100 --ignore-timeouts --ignore-crashes 随机事件次数
PS:在实际操作过程中除了上述两种情况外,可能还会出现ANR的问题,如果出现那就要找到对应的log,然后交给开发去解决