首页 理论教育 Monkey常用参数及使用技巧

Monkey常用参数及使用技巧

时间:2023-06-27 理论教育 版权反馈
【摘要】:可以使用-h了解Monkey所支持的命令及这些命令的用途。-v表示打印出日志信息,Monkey最多支持3个-v,每多一个-v表示增加一个级别的信息。Monkey提供了-s参数,这个参数的作用是指定伪随机生成数的seed值。下面对Monkey的事件类参数进行总结,如图10-15所示。无论Monkey如何动作,都只能在限定的包或类中动作,不会影响其他包或类。如果不指定任何包名,Monkey将允许系统启动所有包的Activity。

Monkey常用参数及使用技巧

1.常规参数

(1)-h即-help,用来显示Monkey的帮助信息。

可以使用-h了解Monkey所支持的命令及这些命令的用途。代码如下:

运行结果如图10-2所示。

(2)-v表示打印出日志信息,Monkey最多支持3个-v,每多一个-v表示增加一个级别的信息。

在工具执行过程中,不论是开发工程师还是测试工程师都非常希望能够看到一些过程数据,比如一些实时的日志。Monkey支持打印日志信息,命令格式如下:

-v:0级信息,提供的信息量最少,只有一些必需的如启动提示、测试完成和最终结果等信息。

-v-v:1级信息,提供比0级更详细的测试信息,如每个发送到Activity的事件等。

-v-v-v:2级信息,提供更详细的测试信息,如测试中被选中或未被选中的Activity等。

Monkey常规参数总结如图10-4所示。

图10-4 Monkey常规参数总结

2.事件类参数

(1)-s:参数后接随机数生成数的seed值。

Monkey测试是随机测试,如果希望重复执行之前的随机操作应该怎么办呢?Monkey提供了-s参数,这个参数的作用是指定伪随机生成数的seed值。

命令格式如下:

这里采用如下示例命令:

运行结果如图10-5所示。

图10-5 随机数参数运行结果

使用-s参数,可以使用随机操作也可以重复执行。

(2)--throttle:在事件之间插入固定的时间(毫秒)延迟,可以使用这个设置减缓Monkey的运行速度,让其更接近真实用户的操作速度,如果不指定这个参数,则事件之间将没有延迟,事件将以最快的速度生成。

经过前面几个命令的操作,应该已经发现这些随机操作的速度非常快,真实用户肯定不可能操作得这么快,如何才能使测试更接近真实用户的操作速度呢?只需要使用--throttle参数,在每个指令之间加上固定的时间间隔就可以了。命令格式如下:

这里采用如下示例命令:

运行结果如图10-6所示。

这个参数属于常用参数,一般设置为300 ms,原因是实际用户操作最快时300 ms左右产生一个动作事件。

(3)--pct-touch:调整触摸事件的比例。

如果希望调整触摸事件的比例,可使用--pct-touch参数。这里的触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的动作。命令格式如下:

图10-6 固定时间延迟参数运行结果

该参数是常用参数,其设置要适应当前被测应用程序的操作,比如一个应用80%的操作都是触摸,那就可以将此参数设置得较大。

这里采用如下示例命令:

运行结果如图10-7所示。

(4)--pct-motion:调整动作事件的比例。

如果希望调整动作事件的比例,可以使用--pct-motion参数。动作事件由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成。命令格式如下:

该参数是常用参数,需注意的是移动事件是直线滑动。比如一个应用80%的操作都是动作,那就可以将此参数设置得较大。

这里采用如下示例命令:

运行结果如图10-8所示。

(5)--pct-trackball:调整滚动球事件的比例。滚动球事件由一个或多个随机的移动事件组成,有时会伴随点击事件。命令格式如下:

图10-7 调整触摸事件比例运行结果

图10-8 调整动作事件比例运行结果

这里采用如下示例命令:

运行结果如图10-9所示。

图10-9 调整滚动球事件比例运行结果

该参数为常用参数,现在手机中几乎没有滚动球,但滚动球事件中包含曲线滑动事件,在被测程序需要曲线滑动时可以选用该参数。

(6)--pct-nav:调整基本导航事件的比例。基本导航事件由方向输入设备的上、下、左、右按键所触发的事件组成。该参数为非常用参数。

命令格式如下:

这里采用如下示例命令:

运行结果如图10-10所示。

(7)--pct-majornav:调整主要的导航事件比例。主要导航事件通常会导致UI中的动作事件,比如5-way键盘中的中间键、回退键和菜单键等。该参数为非常用参数。(www.xing528.com)

命令格式如下:

图10-10 调整基本导航事件比例运行结果

这里采用如下示例命令:

运行结果如图10-11所示。

图10-11 调整主要导航事件比例运行结果

(8)--pct-syskeys:调整系统事件比例。系统事件通常由系统保留使用,如Home、Back、Start Call(拨号键)、End Call(挂断键)及Volume Controls(音量键)等。该参数为非常用参数。

命令格式如下:

这里采用如下示例命令:

运行结果如图10-12所示。

图10-12 调整主要系统事件比例运行结果

(9)--pct-appswitch:调整Activity启动比例。在随机的时间间隔中,Monkey将执行一个startActivity()调用,作为最大限度覆盖被测包中全部Activity的一种方法。该参数为非常用参数。

命令格式如下:

这里采用如下示例命令:

运行结果如图10-13所示。

图10-13 调整Activity启动事件比例运行结果

(10)--pct-anyevent:调整其他事件的比例,包含所有其他事件,如按键、其他在设备上不常用的按钮等。该参数为非常用参数。

命令格式如下:

这里采用如下示例命令:

运行结果如图10-14所示。

下面对Monkey的事件类参数进行总结,如图10-15所示。

3.约束类参数

约束类参数可以让随机事件运行在某几个包或类中。无论Monkey如何动作,都只能在限定的包或类中动作,不会影响其他包或类。

图10-14 调整其他事件比例运行结果

图10-15 Monkey事件类参数总结

(1)-p:指定一个或多个包名。如果指定一个或多个包名,Monkey将只允许访问这些包中的Activity。如果应用程序需要访问这些包(如选择联系人)以外的Activity,需要指定这些包名。如果不指定任何包名,Monkey将允许系统启动所有包的Activity。指定多个包名,使用多个-p,一个-p后面接一个包名。该参数为常用参数。

要想将Monkey限制在某个或几个包中,命令格式如下:

这里采用如下示例命令:

运行结果如图10-16所示。

图10-16 指定包名测试运行结果

(2)-c:指定一个或多个类别名。如果指定一个或多个类别名,Monkey将只允许系统启动这些指定类别中列出的Activity。如果不指定任何类别名,Monkey将选择下列类别中列出的Activity:Intent:CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多个类别名使用多个-c,每个-c后面接一个类别名。该参数为非常用参数。

要想将Monkey限制在某个或是几个类别中,命令格式如下:

下面对Monkey的约束类参数进行总结,如图10-17所示。

图10-17 Monkey约束类参数总结

4.调试类参数

(1)--ignore-crashes:应用程序发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。命令格式如下:

该参数非常重要,因为人们不希望Monkey测试因为一个应用程序的崩溃而直接停止。

(2)--ignore-timeouts:应用程序发生任何超时错误(如“Application Not responding” 对话框)时Monkey将停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。命令格式如下:

该参数为常用参数,如果不设置此参数,Monkey遇到此类超时对话框时将停止运行。

(3)--ignore-security-exception:当应用程序发生权限错误(例如启动一些需要权限的Activity)导致的异常时,Monkey将停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。命令格式如下:

该参数为常用参数,如果不设置此参数,Monkey遇到此类权限错误时将停止运行。

下面对Monkey的调试类参数进行总结,如图10-18所示。

图10-18 Monkey调试类参数总结

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈