monkey基本命令参数详解示例

大类—— 常用选项、事件选项、约束选项、调试选项

1、常用选项

-v:指定打印信息的详细级别,一个-v增加一个级别 ,默认级别为 0 。用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别。

日志级别 Level 0,缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1,提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2,最详细的日志,包括了测试中选中/未选中的Activity信息

2.约束选项

-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.ckt.asura;

参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

举例:指定一个包: adb shell monkey -p com.htc.Weather  100,说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。

           指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader  -p com.htc.photo.widgets 100           

     不指定包:adb shell monkey 100,说明:Monkey随机启动APP并发送100个随机事件。

要查看设备中所有的包,在CMD窗口中执行以下命令:
  >adb shell
  #cd data/data
  #ls

$ adb shell monkey -c <main-category>  <event-count>

   -c:后面接一个或多个类别名,monkey将只允许系统启动这些类别中某个类别列出的Activity,如果不指定任何类别,monkey将选择Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_monkey里的Activity

   每个-c对应一个类别,指定多个类别时每个类别名前面都需要加上-c

   如:$ adb shell monkey -c Intent.CATEGORY_LAUNCHER 1000

   运行Inter.CATEGORY_LAUNCHER类别的Activity并发送1000个随机事件

3.事件选项

-s:用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100
Monkey测试2:adb shell monkey -p com.htc.Weather –s 10 100
两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的.

--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列),单位是毫秒。

举例:adb shell monkey -p com.htc.Weather --throttle 3000 100

--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:

--pct-motion <percent> (滑动事件)、 --pct-trackball <percent> (轨迹球事件) 、 --pct-nav<percent> (导航事件 up/down/left/right)、 --pct-majornav<percent> (主要导航事件 back key 、 menu key)、 --pct-syskeys<percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、 --pct-appswitch<percent> (activity之间的切换)、 --pct-anyevent<percent>(任意事件)

-f:后接测试脚本名,表示要使用monkey运行指定的monkey脚本,$ adb shell monkey -f <scriptfile> <event-count>

    如:$ adb shell monkey -f /mnt/sdcard/test01 3

    注:这里的3是指循环次数,不是事件数

    如果希望重复执行之前的随机操作,需要加-s命令,可指定随机数生成器seed值.

4.调试选项

--ignore-crashes:用于指定当应用程序崩溃时(Force & Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

--ignore-timeouts:用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

--ignore-security-exceptions:用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

--kill-process-after-error:如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

--monitor-native-crashes:用于指定是否监视并报告应用程序发生崩溃的本地代码。

--dbg-no-events:初始化启动的activity,但是不产生任何事件。

--hprof:指定该项后在事件序列发送前后会立即生成分析报告  —— 一般建议指定该项。

--wait-dbg:知道连接了调试器才执行monkey测试。

 

原文地址:https://www.cnblogs.com/hejing-swust/p/7762240.html