一、什么是Monkey
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
二、 Monkey的特征
1、测试的对象仅为应用程序包,有一定的局限性。
2、Monky测试使用的事件流数据流是随机的,不能进行自定义。
3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
三、Monkey命令详解在命令行cmd中输入adb shell monkey 或者adb shell monkey -help就会出现下图:
这些就是Monkey的命令参数。使用时以空格分开。
-p:用于指定测试的app,也就是其对应的包名。指定包名后,Monkey只允许打开指定的进程(app),如果没有指定包,它会随机打开设备中的所有app。可以指定一个包或多个包,命令如下
一个包:adb shell monkey -p com.android.browser 1000
多个包:adb shell monkey -p com.android.browser -p com.qiyi.video 1000
-c:如果用此参数指定了一个或几个类别,Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。如果不指定任何类别,Monkey将选择下列类别中列出的Activity: Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别,需要使用多个-c选项,每个-c选项只能用于一个类别。
--ignore-crashes(忽略崩溃):通常测试时程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
--ignore-timeouts(忽略超时):通常程序遇见超时异常时,monkey会停止运行。如果设置此项,monkey将忽略超时,继续发送事件。
--ignore-security-exceptions(忽略安全异常):当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。
--monitor-native-crashes:(跟踪本地方法的崩溃问题) 监视并报告Android系统中本地代码的崩溃事件。
--ignore-native-crashes:(忽略本地方法的崩溃问题) 忽略android系统中本地代码的崩溃事件。
--kill-process-after-error:用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。
--hprof:设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在/data/misc中生成大文件(~5Mb),所以要小心使用它。
--pct-touch PERCENT:调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕的某单一位置)。
格式为:adb shell -p com.ex.qq --pct-touch 80 1000
上面的80为触摸事件的百分比。可以相对不同应用来调整事件的百分比。
--pct-motion PERCENT:调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的随机事件和一个up事件组成)。如:左右滑动,上下滑动。
--pct-trackball PERCENT:调整调整轨迹事件的百分比(轨迹事件由一个或几个随机移动组成,有时还伴随着点击)。曲线滑动
--pct-syskeys PERCENT:调整系统按键事件的百分比(这些按键通常被保留,由系统使用,如home,back,start call,end call及音量控制)。
--pct-nav PERCENT:调整基本导航事件的百分比(导航事件来自方向输入设备的up/down/left/right组成)。
--pct-majornav PERCENT:调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
--pct-appswitch PERCENT:调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。
--pct-flip PERCENT:调整键盘翻转事件的百分比。
--pct-anyevent PERCENT:调整启动Activity的百分比。它包罗了所有其它的事件类型,如:按键,其它不常用的设备按钮。
--pct-pinchzoom PERCENT:调整缩放事件的百分比。
–wait-dbg:停止执行中的Monkey,直到有调试器和它相连接。
–dbg-no-events:设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
-setup:
-f scriptfile :用于指定monkey脚本测试(之后弄这个)。
-port:为monkey开启专用端口。此时只monkey不会帮你乱点击,而此时你自己就是一只monkey了,在你乱点的时候,monkey会输出你点击后回馈的信息。如果你打完命令之后模拟器上没有启动你所要启动的包,你需要自己启动,但是你只能启动你-p中指定的那几个包。ctrl+c中断。
-s:随机数生成器的seed值。如果用相同的seed值再次运行monkey,它将生成相同的事件序列。
-v:用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下所示:
日志级别 Level 0
示例:adb shell monkey –p com.android.music –v 100
说明:缺省值,仅提供启动提示、测试完成和最终结果等少量信息 日志级别 Level 1
示例:adb shell monkey –p com.android.music –v –v 100
说明:提供较为详细的日志,包括每个发送到Activity的事件信息 日志级别 Level 2
示例:adb shell monkey –p com.android.music –v –v –v 100 说明:最详细的日志,包括了测试中选中/未选中的Activity信息。
--throttle MILLISEC:当事件起效时等待的毫秒数。
COUNT:要发送的事件数。