monkey之monkey简介
Posted lynnLi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了monkey之monkey简介相关的知识,希望对你有一定的参考价值。
1.Monkey 是什么
Monkey是android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件稳定性、健壮性的快速有效的方法。
Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。Monkey.jar程序是由一个名为“monkey”的shell脚本来启动执行,shell脚本在Android文件系统中的存放路是:/system/bin/monkey;
这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。
打开CMD窗口,输入adb shell ls /system/framework,可以查看到monkey.jar;同理,可查看monkey。
2.Monkey测试的特点
1)测试的对象仅为应用程序包,有一定的局限性。
2)Monkey测试使用的事件流数据流是随机的,不能进行自定义。
3)可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
3.Monkey的基本用法
1)Monkey测试准备
在执行Monkey测试之前,我们需要下载ADB工具,并安装JDK v1.5以上的版本。
ADB工具是谷歌提供的Android调试工具,可以通过linux命令行访问手机。
安装好JDK环境,下载adbtools之后,我们需要配置一下环境变量,把adbtools的存放路径添加到path中,我们可以开始进行Monkey测试。
注:需要root权限。
2)基本语法如下:
$ adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。
$adb install
adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上
adb install -r <apk文件路径> :如果加-r参数会覆盖原来安装的软件并保留数据
注意:apk文件名不要使用中文且不要有空格号
$ adb shell monkey [options]
如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500 个伪随机事件:
$ adb shell monkey -p your.package.name -v 500
4.monkey测试的相关的原理
monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户触发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件。
5.monkey实例
1)启动Android模拟器
2)在命令行中输入:adb devices查看设备连接情况
3)在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面
4)查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面
5)以com.tencent.mobileqq为对象,进行monkey test
monkey -p com.tencent.mobileqq -v 500
6)另一种执行方法
adb shell monkey -p com.tencent.mobileqq -v 500>E:\\monkey\\test.log
6.Monkey测试的停止条件
Monkey Test执行过程中在下列三种情况下会自动停止:
1)如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
2)如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。
3)如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。
工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下:
Monkey测试是Android自动化测试里面使用比较简单的方法,可以很大程度检验我们的程序是否稳定,能否经得起压力测试,可以根据实际情况调整测试的强度和测试重点。
Monkey测试只是一个模拟测试,很多时候跟实际情况时有差别的,所以这个只能是其中一个辅助测试。
以上是关于monkey之monkey简介的主要内容,如果未能解决你的问题,请参考以下文章
玩转Android monkey之monkey是啥?monkey=猴子?