monkey 常用命令及其用法

本贴最后更新于 1282 天前,其中的信息可能已经时移世改

monkey 作为客户端常用的稳定性测试工具,常用的参数及其用法是怎样的呢?接下来我们一起。

monkey 常规命令~ -h

大家最希望知道的当时是 monkey 都有哪些命令参数,这些命令参数都是什么用处,这个时候我们就可以使用-h,来查看 help 文档。

运行如下命令:

adb shell monkey -h

运行结果如图:monkey.png

我们从图中可以看出 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

在使用过程中大多时候都是多种参数组合使用,后面就看大家自己的发挥了!

  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    333 引用 • 323 回帖 • 65 关注
2 操作
917719801 在 2020-10-21 21:16:17 更新了该帖
917719801 在 2020-10-21 21:16:04 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...