美文网首页
Monkey参数

Monkey参数

作者: Chaweys | 来源:发表于2022-01-19 12:43 被阅读0次

Monkey参数
参数分类:
常规类参数、事件类参数、约束类参数、调试类参数

一、常规类型参数:
(1)、adb shell monkey [-h]
[-h] 帮助参数,查看帮助信息


(2)、adb shell [-v] [-v] [-v] [event-count]
[-v] 一个-v打印日志信息0级,除启动提示,测试完成和最终结果外提供较少信息
[-v] 两个-v打印日志信息1级,提供较详细测试信息,如逐个发送到Activity的事件
[-v] 三个-v打印日志信息2级,提供更详细安装信息,如测试中被选中或未被选中的Activity
[event-count] 事件次数


二、事件类型参数:
(1)、-f [script]  执行指定的测试脚本
adb shell monkey -f [script] [event-count]



(2)、-s [seed]    重复执行之前的伪随机操作
adb shell monkey -s [seed] [event-count]
如果不加该参数,本身每次执行伪随机事件操作也会默认生成一个seed值
如:adb shell monkey -s 666 100
可以再重复执行此前执行adb shell monkey -s 666 100该命令的同样操作(完完全全一样),如果不指定 -s 666,则操作就会是随机不一样的。


(3)、--throttle 3000  指定事件固定延迟3000毫秒,事件次数10次
adb shell monkey --throttle 3000 10



(4)、--pct-touch 100  调整触摸事件的百分比,此处指百分百
adb shell monkey --pct-touch 100
如:adb shell monkey -v -v --pct-touch 100 200
注:触摸事件不单单时按键,它泛指发生在某一个位置的一个down-up事件


(5)、--pct-motion 100  调整手势事件的百分比,此处指百分百
adb shell monkey --pct-motion 100
如:adb shell monkey -v -v --pct-motion 100 200


(6)、--pct-appswitch 100 调整应用启动事件的百分比
adb shell monkey --pct-appswitch 100
应用启动事件,即打开应用,通过调用startActivity()方法最大限度的开启该package下的所有应用


(7)、--pct-rotation 50  调整屏幕旋转事件百分比
adb shell monkey --pct-rotation 50



(8)、--ptc-anyevent [perpenct] 其它类型事件百分比
keypress、不常用的Button、其它未提及事件



三、约束类型参数:
(1)、-p [packageName] 包约束
adb shell monkey -p [packageName] [event-count]
-p 接一个或多个包名,如果应用需要访问其它包里的Activity,那相关的包也需要在此同时指定,
如果不指定任何包,monkey将允许系统启动全部包里的全部Activity.
如:
adb shell monkey -p com.tal.kaoyan 500
adb shell monkey -p com.tal.kaoyan -p com.tencent.mm 500


(2)、activity类约束
如果希望将monkey限制在一个或几个类别中,如下:
adb shell monkey -c [main-category] [event-count]
如:
adb shell monkey -c Intent.CATEGORY_LAUNCHER 1000
表示运行Intent.CATEGORY_LAUNCHER类别的Activity并发送1000个随机事件




四、调试类参数
(1)、应用程序崩溃后继续发送事件
如果希望Monkey在应用程序崩溃后继续发送事件,则需要用到--ignore-crashes
在设置此选项后,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。
如果不设置此选项,monkey遇到上述崩溃或异常将停止运行.
adb shell monkey --ignore-crashes [event-count]



(2)、超市错误继续发送事件
如果希望monkey在任何超时错误发生后继续发送事件,则需要用到--ignore-timeouts
在设置此选项后,当应用程序发生任何超时错误(如ANR,即Application Not Responding)时,monkey将继续运行直到计数完成。
如果不设置此选项,monkey遇到此类超时对话框将停止运行.
adb shell monkey --ignore-timeouts [event-count]



(3)、应用程序权限错误发生后继续发送事件
如果希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions
在设置此选项后,当应用程序发生任何权限错误(如启动一个需要某些权限的Activity)时,monkey将继续运行直到计数完成。
如果不设置此选项,monkey遇到此类权限错误将停止运行.
adb shell monkey --ignore-security-exceptions [event-count]


(4)、其它
--dbg-no-events: 监视应用程序调用的包之间的转换
--hprof:        在事件序列前后立即生成profiling report
--kill-process-after-error: 在应用程序出错后通知系统停止发生错误的进程
--monitor-native-crashes:   监视并报告Monkey运行时Android系统native code的崩溃事件
--wait-dbg:                 暂停执行中的monkey,直到有调试器与它连接




举例:
需求分析:
1、测试是指定应用,因此需要使用-p指定被测app包名:com.tal.kaoyan

2、这个测试的目的是希望模拟用户操作,因此需要让Monkey执行的事件尽可能地接近用户的常规操作,
这样才可以最大限度地发现用户使用过程中可能出现的问题。因此需要对Monkey执行的事件百分比做一些调整:
触摸事件和手势事件是用户最常见的操作,所以通过--pct-touch和--pct-motion将这两个事件的占比调整到40%与25%;
目标应用包含了多个Activity,为了能覆盖大部分的Activity,所以通过--pct-appswitch将Activity切换的事件占比调整到10%;
被测应用在测试中出现过不少横竖屏之间切换的问题,这个场景也必须关注,因此通过--pct-rotation把横竖屏切换事件调整到10%.

3、使用-s参数来指定命令执行的seed值 Monkey会根据seed值来生成对应事件流,同一个seed生成的事件流是完全相同的。
这里指定了seed值,是为了测试发现问题时,便于进行问题复现.

4、使用--throttle参数来控制Monkey每个操作之间的时间间隔 指定操作之间的时间间隔,一方面是希望能更接近用户的操作场景,正常用户操作都会有一定的时间间隔;
另一方面也是不希望因为过于频繁的操作而导致系统崩溃,尤其是在比较低端的手机上执行测试时。因此通过--throttle设置Monkey每个操作固定延迟0.4秒.

5、使用--ignore-crashs和--ignore-timeouts参数使Monkey遇到意外时能继续执行 在执行Monkey测试时,会因为应用的崩溃或没有响应而意外终止,所以需要在命令中增加限制参数--ignore-crash和--ignore-timeouts,
让Monkey在遇到崩溃或没有响应的时候,能在日志中记录相关信息,并继续执行后续的测试.

6、使用-v指定log的详细级别 Monkey的日志输出有3个级别:日志的级别越高,其详细程度也越高。为了方便问题的定位,这里将日志设为 -v -v

测试命令:
adb shell monkey -p com.tal.kaoyan 
--pct-toch 40 --pct-motion 25
--pct-appswitch 10 --pct-rotation 5
-s 6666 --throttle 400
--ignore-crashes
--ignore-timeouts
-v -v 200

相关文章

网友评论

      本文标题:Monkey参数

      本文链接:https://www.haomeiwen.com/subject/wyqlhrtx.html