Android自动测试之Monkey工具
jopen
13年前
<p>一、 什么是Monkey</p> <p>Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。<br /> </p> <p>二、 Monkey的特征</p> <p>1、测试的对象仅为应用程序包,有一定的局限性。</p> <p>2、 Monky测试使用的事件流数据流是随机的,不能进行自定义。</p> <p>3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。<br /> </p> <p>三、Monkey的基本用法</p> <p>基本语法如下:</p> <p>$ adb shell monkey [options]</p> <p>如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:</p> <p>$ adb shell monkey -p your.package.name -v 500<br /> </p> <p>四、Monkey测试的一个实例</p> <p>通过这个实例,我们能理解Monkey测试的步骤以及如何知道哪些应用程序能够用Monkey进行测试。</p> <p>Windows下(注:2—4步是为了查看我们可以测试哪些应用程序包,可省略):</p> <p>1、 通过eclipse启动一个Android的emulator</p> <p>2、 在命令行中输入:adb devices查看设备连接情况</p> <p>C:\Documents and Settings\Administrator>adb devices</p> <p>List of devices attached</p> <p>emulator-5554 device</p> <p>3、 在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面</p> <p>C:\Documents and Settings\Administrator>adb shell</p> <p>#</p> <p>4、 查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面</p> <p>C:\Documents and Settings\Administrator>adb shell</p> <p># ls data/data</p> <p>ls data/data</p> <p>com.google.android.btrouter</p> <p>com.android.providers.telephony</p> <p>com.android.mms</p> <p>com.android.providers.downloads</p> <p>com.android.deskclock</p> <p>com.android.email</p> <p>com.android.providers.media</p> <p>com.android.settings</p> <p>jp.co.omronsoft.openwnn</p> <p>com.android.providers.userdictionary</p> <p>com.android.quicksearchbox</p> <p>com.android.protips</p> <p>com.android.browser</p> <p>com.android.launcher</p> <p>com.android.term</p> <p>com.android.speechrecorder</p> <p>com.android.server.V*N</p> <p>com.android.defcontainer</p> <p>com.svox.pico</p> <p>com.android.customlocale</p> <p>com.android.development</p> <p>com.android.soundrecorder</p> <p>com.android.providers.drm</p> <p>com.android.spare_parts</p> <p>com.android.providers.downloads.ui</p> <p>com.android.fallback</p> <p>com.android.providers.applications</p> <p>com.android.netspeed</p> <p>com.android.wallpaper.livepicker</p> <p>android.tts</p> <p>com.android.htmlviewer</p> <p>com.android.music</p> <p>com.android.certinstaller</p> <p>com.android.inputmethod.pinyin</p> <p>com.android.providers.subscribedfeeds</p> <p>com.android.inputmethod.latin</p> <p>com.android.gallery</p> <p>com.android.systemui</p> <p>com.android.contacts</p> <p>com.android.phone</p> <p>com.android.sdksetup</p> <p>com.android.calculator2</p> <p>com.android.packageinstaller</p> <p>com.android.camera</p> <p>com.android.providers.settings</p> <p>com.thestore.main</p> <p>com.android.providers.contacts</p> <p>5、 以com.android.calculator2作为对象进行MonkeyTest</p> <p>#monkey -p com.android.calculator2 -v 500</p> <p>其中-p表示对象包 –v 表示事件数量</p> <p>运行过程中,Emulator中的应用程序在不断地切换画面。</p> <p>按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。 </p> <p>注:具体参数的设定可参考:</p> <p><a href="/misc/goto?guid=4959500741019734594" rel="nofollow">http://developer.android.com/guide/developing/tools/monkey.html<br /> <br /> </a></p> <p>五、关于Monkey测试的停止条件</p> <p>Monkey Test执行过程中在下列三种情况下会自动停止:</p> <p>1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。</p> <p>2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。</p> <p>3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。</p> <p>通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。<strong> </strong></p> <p>文章出处:<a href="/misc/goto?guid=4959500741100560845" rel="nofollow">http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980068.html</a></p>