写点什么

Monkey 基本参数介绍

  • 2023-08-06
    北京
  • 本文字数:3621 字

    阅读完需:约 12 分钟

说到 android 移动端稳定性测试,大家通常会想到 android 系统自动 Monkey 小猴子,通过 Monkey 命令模拟用户触摸点击屏幕、滑动、系统按键等操作来对设备上的 app 进行压力测试,来测试应用的稳定性和健壮性。

<br style="box-sizing: border-box;"/>

下面就说说 monkey 常用参数的用法~~

**1、-help**

**

**

作用:列出简单的用法

<br style="box-sizing: border-box;"/>

**2、--throttle &lt;milliseconds&gt;**

**

**

作用:在事件之间插入固定的时间(毫秒)延迟,你可以使用这个设置来减缓 Monkey 的运行速度,如果你不指定这个参数,则事件之间将没有延迟,事件将以最快的速度生成。

<br style="box-sizing: border-box;"/>

一般这里设置为 300 毫秒,原因是实际上用户操作一个动作事件最快需要 300 毫秒左右,所以设置太小,也不符合正常用户的使用习惯,设置太大,又会发现不了问题。

<br style="box-sizing: border-box;"/>

用法: adb shell “monkey –throttle 300”

<br style="box-sizing: border-box;"/>

**3、--pct-touch &lt;percent&gt;**

**

**

作用:调整 monkey 命令触摸事件的百分比。(触摸事件是指在屏幕中的一个 down-up 事件,即在屏幕某处按下并抬起的操作),参数设置要根据被测应用程序的特点来修改设置。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-touch 100”

<br style="box-sizing: border-box;"/>

**4、--pct-motion &lt;percent&gt;**

**

**

作用:调整 motion 事件百分比。(motion 事件是由屏幕上某处一个 down 事件、一系列伪随机的移动事件和一个 up 事件组成),需注意的是滑动事件是直线滑动,不适用曲线滑动。<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-motion 100”

<br style="box-sizing: border-box;"/>

**5、--pct-trackball &lt;percent&gt;<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:调整滚动球事件百分比。(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件)<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>

这个参数现在不常使用,早期的 android 手机出厂自带滚动球,估计有些小伙伴们见过,但现在手机几乎没有滚动球,至少我没有见过,但滚动球事件中包含曲线滑动事件,如果被测应用需要曲线滑动时可以选用此参数。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-trackball 100”

<br style="box-sizing: border-box;"/>

**6、--pct-nav &lt;percent&gt;<br style="box-sizing: border-box;"/>**

<br style="box-sizing: border-box;"/>

作用:调整基本的导航事件百分比。(导航事件由方向输入设备的上下左右按键所触发的事件组成),这个参数不常用。<br style="box-sizing: border-box;"/>

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-nav 100”

<br style="box-sizing: border-box;"/>

**7、--pct-majornav &lt;percent&gt;<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:调整主要导航事件的百分比。(这些导航事件通常会导致 UI 界面中的动作事件,如 5-way 键盘的中间键,回退按键、菜单按键),这个参数不常用。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-majornav 100”

<br style="box-sizing: border-box;"/>

**8、--pct-syskeys &lt;percent&gt;<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:调整系统事件百分比。(这些按键通常由系统保留使用,如 Home、Back、Start Call、End Call、音量调节),这个参数的百分比通常比较小。<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-syskeys 3”

<br style="box-sizing: border-box;"/>

**9、--pct-appswitch &lt;percent&gt;<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:调整 Activity 启动的百分比。(在随机的时间间隔中,Monkey 将执行一个 startActivity()调用,作为最大程度覆盖被测包中全部 Activity 的一种方法)<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-appswitch 100”

<br style="box-sizing: border-box;"/>

**10、--pct-anyevent<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:调整其他事件的百分比。(这包含所有其他事件,如按键、其他在设备上不常用的按钮等),这个参数不常用。<br style="box-sizing: border-box;"/>

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --pct-anyevent 100”

<br style="box-sizing: border-box;"/>

**11、-p &lt;allowed-package-name&gt;<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:如果你想指定一个或多个应用,Monkey 将只启动这些包中的 Activity。如果不指定任何包,Monkey 将启动系统所有包的 Activity。指定多个包,使用多个-p,一个-p 后面接一个包名。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey -p com.Android.browser”

<br style="box-sizing: border-box;"/>

**12、--ignore-crashes<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:应用发生崩溃或异常时 Monkey 会停止运行。如果设置此项,Monkey 将继续发送事件给系统,直到事件计数完成。<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>

用法:adb shell “monkey --ignore-crashes”

<br style="box-sizing: border-box;"/>

**13、--ignore-timeouts<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:应用程序发生任何超时错误(例如:ANR)时,Monkey 将停止运行,设置此项,Monkey 将继续发送事件给系统,直到事件计数完成。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --ignore-crashes”

<br style="box-sizing: border-box;"/>

**14、--ignore-security-exception <br style="box-sizing: border-box;"/>**

**

**

作用:当程序发生许可错误(例如启动一些需要许可的 Activity)导致的异常时,Monkey 将停止运行。设置此项,Monkey 将继续发送事件给系统,直到事件计数完成。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --ignore-security-exception”

<br style="box-sizing: border-box;"/>

**15、--kill-process-after-error<br style="box-sizing: border-box;"/> <br style="box-sizing: border-box;"/>**

作用:当 Monkey 由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey --kill-process-after-error”

<br style="box-sizing: border-box;"/>

**16、-v**

<br style="box-sizing: border-box;"/>

作用:命令行上的每一个-v 都将增加反馈信息的详细级别。(最多使用 3 个-v)

Level 0(默认),除了启动、测试完成和最终结果外只提供较少的信息。<br style="box-sizing: border-box;"/> Level 1,提供了较为详细的测试信息,如逐个发送到 Activity 的事件信息。<br style="box-sizing: border-box;"/> Level 2,提供了更多的设置信息,如测试中选中或未选中的 Activity 信息。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey -v -v -v”

<br style="box-sizing: border-box;"/>

**17、-s&lt;seed&gt;**

<br style="box-sizing: border-box;"/>

作用:伪随机数生成器的 seed 值。如果用相同的 seed 值再次运行 monkey,将生成相同的事件序列。

<br style="box-sizing: border-box;"/>

用法:adb shell “monkey -s 300”

<br style="box-sizing: border-box;"/>

最近测试的项目属于短视频类的,这样结合这些 monkey 参数和被测应用的特点(滑动和点击操作比较多)。组合的 monkey 的命令如下:

<br style="box-sizing: border-box;"/>

adb shell "monkey -p com.xxx.video -v -v -v -s 100 --throttle 300 --pct-touch 35 --pct-motion 41 --pct-syskeys 2 --pct-appswitch 20 --pct-anyevent 2 --ignore-security-exceptions --ignore-crashes --ignore-timeouts 1000000 1 &gt;/sdcard/xxxlog.txt 2&gt; /sdcard/xxxlog_error.txt&amp; logcat -v time -d &gt;sdcard/xxx_logcat.txt"

<br style="box-sizing: border-box;"/>

<br style="box-sizing: border-box;"/>

<br style="box-sizing: border-box;"/>

**


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
Monkey基本参数介绍_霍格沃兹测试开发学社_InfoQ写作社区