Monkey是可以运行在模拟器里或实际设备中的程序。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
Monkey简介
Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:
· 基本配置选项,如设置尝试的事件数量。
· 运行约束选项,如设置只对单独的一个包进行测试。 · 事件类型和频率。 · 调试选项。
在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理:
· 如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
· 如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。 · 如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
Monkey的基本用法
可以通过开发机器上的命令行或脚本来启动Monkey。由于Monkey运行在模拟器/设备环境中,所以必须用其环境中的shell来进行启动。可以通过在每条命令前加上adb shell来达到目的,也可以进入Shell后直接输入Monkey命令
。
基
本
语
法
如
下
:
$ adb shell monkey [options]
如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用
程
序
,
并
向
其发
送
500
个
伪
随
机
事
件
:
$ adb shell monkey -p your.package.name -v 500
命令选项参考
CategorOption y General --help 常规 -v 描述 列出简单的用法。 命令行的每一个-v将增加反馈信息的级别。Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息。Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。 伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey,它将生成相同的事件序列。 Events -s ①在android设备上点击一下你要测试的设备,然后就不用操作设备了。 ②在PC上的命令行输入:adb logcat>D:/log.txt *:I 在这里的D:/log.txt你可以改成其他的路径,但是一定要先确保路径下没有这个文件,不然的话你以前的文件就被改掉了,一定要小心。 ③按下Ctrl+c先停掉(为了避免过多的新信息)。打开刚刚的那个文件D:/log.txt。从文件最下面开始找下面格式的信息 I/ActivityManager( 数字): Displayed 包名/类名: +数字ms 例如我的信息如下: I/ActivityManager( 272): Displayed com.vane/.act.ActLauncher: +315ms 不过你可能会发现有很多这种格式的信息,到底哪个才是你需要的呢,如果你严格按照刚刚的步骤做的话,那么很可能是最下面那条信息,即使不是那么也肯定是最下面几条信息中的某一条,这需要你根据应用进行辨别。 ④记下你刚刚得到的包名,例子中的包名为“com.vane”。马上就会用。 3、使用Monkey发一条测试命令。 这一步就比较简单了。直接在pc上的命令行输入:adb shell monkey -p com.vane -v 50 备注:上面命令中的com.vane就是之前获得的包名;命令中的参数你可以自己根据需要参考上面的参数文档进行修改。 4、观察android设备,直到Monkey停止。 5、如果应用崩溃的话就好分析一下Monkey中的信息。 总结 Monkey的使用确实比较简单,但是在测试中确有不小的作用,值得使用。 因篇幅问题不能全部显示,请点此查看更多更全内容