monkey 作为客户端常用的稳定性测试工具,常用的参数及其用法是怎样的呢?接下来我们一起。
monkey 常规命令~ -h
大家最希望知道的当时是 monkey 都有哪些命令参数,这些命令参数都是什么用处,这个时候我们就可以使用-h,来查看 help 文档。
运行如下命令:
adb shell monkey -h
运行结果如图:
我们从图中可以看出 monkey 命令中的参数和作用
monkey 常规命令~ -v
程序在运行是都希望可以看到运行的日志,而且在我们不了解的情况下最好日志越详细越好,对于 monkey 而言,只需要在 monkey 命令后面跟上-v 参数即可打印日志信息
adb shell monkey -v <event-count>
-v:打印日志信息,每个-v 将增加反馈信息的级别。-v 越多日志信息越详细,不过目前最多支持 3 个。即:
adb shell monkey -v -v -v 100
注:100 为 100 个随机事件
- 0 级,除启动提示、测试完成和最终结果外提供较少
- 1 级,提供较详细测试信息,如逐个发送到 Activity
- 2 级,提供更加详细安装信息,如测试中被选中或未被选中的 activity
monkey 约束命令 ~ -p
-p 参数后面接一个或多个包名,如果应用需要访问其他包里面的 Activity,那相关的包名也需要再在此同时指定。如果不指定任何包,monkey 将允许系统启动全部包里面的 activity。每一个-p 对应一个包(指定多个包时每个包名前面都需要加上-p),如:
adb shell monkey -p <package-name1> -p <package-name2> 100
monkey 约束命令~ -c
-c:后面接一个或者多个类别名(即参数),monkey 将只允许系统启动这些类别中某个类别列出的 Activity。每个-c 对应一个类别(指定多个类别时需要在每个类别前加上-c)
adb shell monkey -c <main-category1> -c <main-category2> 100
monkey 事件命令~ -f
-f:后接测试脚本命,标识要使用 monkey 运行指定的 monkey 脚本
adb shell monkey -f <scriptfile> <event-count>
执行命令如下:
adb shell monkey -f /sdcard/test 1
注意:这里的 1 为循环次数,而非事件数
monkey 事件命令~ -s
-s:后接随机数生成器的 seed 值
adb shell monkey -s <seed> <event-count>
好处:如果相同的 seed 值再次运行 monkey,将会生成相同的事件序列(也就是重复执行刚才的随机操作)
monkey 事件命令~ --throttle
--throttle:后面接时间,单位为:ms,表示事件之间的固定延迟(执行每一个指令间隔的时间),若不接,monkey 将不会延迟
adb shell monkey --throttle <milliseconds>
monkey 事件命令~ --pct-touch
--pct-touch:后面接触摸事件百分比(触摸事件就泛指发生在一个位置的一个 down-up)
adb shell monkey --pct-touch <percent>
monkey 事件命令~ --pct-motion
--pct-motion:后面接动作事件的百分比(动作事件泛指从某一位置按下(即 down 事件)后结果一系列的伪随机事件后弹起(即 up 事件))
adb shell monkey --pct-motion <percent>
monkey 事件命令~ --pct-trackball
--pct-trackball:后接轨迹球事件百分比(轨迹球事件包括一系列的随机移动,以及偶尔跟随在移动后面的点击事件)
adb shell monkey --pct-trackball <percent>
monkey 事件命令~ --pct-nav
--pct-nav:后接基本导航事件百分比(基本导航时间主要指来自方向输入设备的上、下、左、右事件)
adb shell monkey --pct-nav <percent>
monkey 事件命令~ --pct-majornav
--pct-majornav:后面接主要导航事件百分比(主要导航事件通常指引发图形界面的一些动作,如返回按钮键,菜单按键等)
adb shell monkey --pct-majornav <percent>
monkey 事件命令~ --pct-syskeys
--pct-syskeys:后接系统按键事件百分比(系统按键事件通常指仅供系统使用的保留按键,如 home 键,back 键,音量键等)
adb shell monkey --pct-syskeys <percent>
monkey 事件命令~ --pct-appswitch
--pct-appswitch:后面接应用启动事件百分比(应用启动事件俗称打开应用,通过调用 startactivity 方法最大限度的开启 package 下的所有应用)
adb shell monkey --pct-appswitch <percent>
monkey 事件命令~ --pct-anyevent
--pct-anyevent:后接其他类型事件百分比(其他类型包含除上面提到的事件外的所有事件,如 keypress,不常用的 button 等)
adb shell monkey --pct-anyevent <percent>
monkey 调试命令~ --dbg-no-events
--dbg-no-events:在设置此选项后,monkey 将进行初始启动,进入到某个测试 Activity 中部不会进行进一步生成事件。
提示:为了更好的跟踪,一般该选项与-v、-p 和--throttle 等联合使用,从而提供一个可监视应用程序所调用包之间转换的环境
adb shell monkey --dbg-no-events <event-count>
monkey 调试命令~ --hprof
--hprof:在设置此选项后,将在 monkey 事件序列前后立即生成 profiling report
提示:该选项将在、data/misc 中生成文件
adb shell monkey --hprof <event-count>
monkey 调试命令~ --ignore-crashes
--ignore-crashes:在设置此选项后,当应用程序崩溃或发生失控异常时,monkey 将继续运行直到计数完成。如果不设置此选项,monkey 遇到上述崩溃或异常将停止运行
adb shell monkey --ignore-crashes <event-count>
monkey 调试命令~ --ignore-timeouts
--ignore-timeouts:在设置此选项后,当程序发生任何超时错误(如 ANP)时,monkey 将继续运行直到计数完成。如果不设置此选项,monkey 遇到此类超时对话框将停止运行。
adb shell monkey --ignore-timeouts <event-count>
monkey 调试命令~ --ignore-security-exceptions
--ignore-security-exceptions:在设置此选项后,当应用程序发生任何权限错误(如启动需要某些权限的 activity)时,monkey 将继续运行直到计数完成。如果不设置此选项,monkey 遇到此类权限错误将停止运行。
adb shell monkey --ignore-security-exceptions <event-count>
monkey 调试命令~ --kill-process-after-error
--kill-process-after-error:在设置此选项后,当 monkey 因为应用程序发生错误而停止时,将会通知系统停止发生错误的进程。如果不设置此选项,在 monkey 停止时发生错误的应用程序将继续处于运行状态
adb shell monkey --kill-process-after-error <event-count>
monkey 调试命令~ --monitor-native-crashes
--monitor-native-crashes:在设置此选项后,monkey 运行 native code 的崩溃事件将被监视并报告。如果不设置此选项,将不会监视此类事件。
注意:如果此时还设置了--kill-process-after-error 命令,此类(system native code)系统也将停止运行
adb shell monkey --monitor-native-crashes <event-count>
monkey 调试命令~ --waot-dbg
--waot-dbg:在设置此选项后,将暂停执行中的 monkey,直到有调试器与它连接。
adb shell monkey --waot-dbg <event-count>
当然,常用参数远不止这么多,monkey 常用参数见:https://developer.android.google.cn/studio/test/monkey?hl=zh_cn
在使用过程中大多时候都是多种参数组合使用,后面就看大家自己的发挥了!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于