Monkey工具

前言:

最 近开始研究Android自动化测试方法,对其中的一些工具、方法和框架做了一些简单的整理,其中包括android测试框架、CTS、Monkey、 Monkeyrunner、benchmark、其它test tool等等。因接触时间很短,很多地方有不足之处,希望能和大家多多交流。

一、  什么是Monkey

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

二、 Monkey的特征

1、
测试的对象仅为应用程序包,有一定的局限性。

2、
Monky测试使用的事件流数据流是随机的,不能进行自定义。

3、
可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

三、Monkey的基本用法

基本语法如下:

$ adb shell monkey [options]

如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:

$ adb shell monkey -p your.package.name -v 500

四、Monkey测试的一个实例

通过这个实例,我们能理解Monkey测试的步骤以及如何知道哪些应用程序能够用Monkey进行测试。

Windows下(注:2—4步是为了查看我们可以测试哪些应用程序包,可省略):

1、 通过eclipse启动一个Android的emulator

2、 在命令行中输入:adb devices查看设备连接情况

C:\Documents and Settings\Administrator>adb
devices

List of devices attached

emulator-5554  
device

3、 在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面

C:\Documents and Settings\Administrator>adb shell

#

4、 查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面

C:\Documents and Settings\Administrator>adb shell

# ls data/data

ls data/data

com.google.android.btrouter

com.android.providers.telephony

com.android.mms

com.android.providers.downloads

com.android.deskclock

com.android.email

com.android.providers.media

com.android.settings

jp.co.omronsoft.openwnn

com.android.providers.userdictionary

com.android.quicksearchbox

com.android.protips

com.android.browser

com.android.launcher

com.android.term

com.android.speechrecorder

com.android.server.vpn

com.android.defcontainer

com.svox.pico

com.android.customlocale

com.android.development

com.android.soundrecorder

com.android.providers.drm

com.android.spare_parts

com.android.providers.downloads.ui

com.android.fallback

com.android.providers.applications

com.android.netspeed

com.android.wallpaper.livepicker

android.tts

com.android.htmlviewer

com.android.music

com.android.certinstaller

com.android.inputmethod.pinyin

com.android.providers.subscribedfeeds

com.android.inputmethod.latin

com.android.gallery

com.android.systemui

com.android.contacts

com.android.phone

com.android.sdksetup

com.android.calculator2

com.android.packageinstaller

com.android.camera

com.android.providers.settings

com.thestore.main

com.android.providers.contacts

5、 以com.android.calculator2作为对象进行MonkeyTest

#monkey
-p com.android.calculator2 -v 500

其中-p表示对象包 –v 表示事件数量

运行过程中,Emulator中的应用程序在不断地切换画面。

按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。

注:具体参数的设定可参考:

http://developer.android.com/guide/developing/tools/monkey.html

五、关于Monkey测试的停止条件

Monkey Test执行过程中在下列三种情况下会自动停止:

1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。

转自:http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980068.html

其他资源:http://blog.csdn.net/ryantang03/article/details/7746441

Android自动测试之Monkey工具的更多相关文章

  1. 2、Android自动测试之Monkey工具

    Android自动测试之Monkey工具 APP测试工作中经常会听到领导说,APP压力测试做了吗?刚入行时,不知道什么是 APP压力测试,找了半天没找到自己想要的.过了几年,回头想这个问题,发现牵扯了 ...

  2. [转] Android自动测试之monkeyrunner工具(二)

    monkeyrunner工具  前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyru ...

  3. Android自动测试之monkeyrunner工具

    monkeyrunner工具  前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括 android测试框架.CTS.Monkey.Monkeyr ...

  4. Android自动化测试之Monkey工具

    前言:Android自动化测试工具.方法和框架,包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.test tool等. 一. 什么是MonkeyMonk ...

  5. Android自动化测试之Monkey 转自:LupuX

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011436666/article/details/53998332 在之前的文章Android自动 ...

  6. Android自动化测试之monkeyrunner工具

    一.什么是monkeyrunner monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器.通过monkeyrunner,您可以 ...

  7. Android自动化测试之Monkey

    本来是做Web后端的,来公司实习变成微信小程序前端了,到这周变成Android APP测试人员了,也是微醺啊. 由于对手工测试终究是有些抵触,所有昨天小试了一下不用写代码的自动化压力测试,在此记下我的 ...

  8. Android自动化测试之Monkey Test 安装(二)

    因为Monkey Test是在eclipse上执行的,所以玩monkey test的时候要先配置安卓开发环境 一.Android开发环境搭建指南 1.安装JDK JDK下载链接:http://www. ...

  9. Android自动化测试之Monkey Test(一)

    Monkey是什么 Monkey是可以运行在模拟器里或实际设备中的程序.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.   Monkey简 ...

随机推荐

  1. ios发布笔录

    需要一张1024x1024的icon 发布尺寸4.7英寸  1334x7505.5英寸 2208-12424英寸  1136-6403.5英寸 960-640ipad  2048x1536 视频 ip ...

  2. C++虚成员函数表vtable

    介绍一下多态是如何实现的,关于如何实现多态,对于程序设计人员来说即使不知道也是完全没有关系的,但是对于加深对多态的理解具有重要意义,故而在此节中稍微阐述一下多态的实现机制. 在C++中通过虚成员函数表 ...

  3. 逆向思维 UVA 11853

    题目大意:紫书175 思路:看书...2333 关键点就是利用已知条件来逆向思考是否能走通,而不是傻傻的从某个点开始出发啊啥的.

  4. CVE-2015-0057 POC构造 & 利用分析(2015.7)

    CVE-2015-0057 POC构造 & 利用分析 主要内容: 构造POC 利用思路 0x00 初探 从这篇文章可以获知: 1.问题出在 win32k!xxxEnableWndSBArrow ...

  5. SQL语句优化技术分析 整理他人的

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  6. (转载)uefi启动解析:由原理到实例

    这是本文的全部内容:A:什么是UEFI,其含义B:UEFI模块包含的文件逐个分析及其引导流程+ESP分区的本质C:判断自己的机器是X64(64 bit)构架还是IA32(32 bit)的构架D:给传统 ...

  7. Unity3D研究院之在把代码混淆过的游戏返混淆回来(七十七)

    最近一直在找如何在MAC上混淆Android的DLL,至今没能找到合适的,有大神知道记得告诉我喔.今天群里有人说了一个混淆代码和返混淆代码的工具de4dot ,不查不知道一查吓一跳.这玩意可以把别人混 ...

  8. Selenium 中文API

    Selenium 中文API   转自:http://blog.csdn.net/lh9529/article/details/3946567 概念 Selenium 通过命令进行驱动.Seleniu ...

  9. ubuntu 把终端信息输出到文本文件中的方法

    方法一:把终端中所有信息都写到文本文件中 在终端的命令行中输入以下命令: $   script   -f    output.txt 这样就会在当前目录下创建一个output.txt文件 接下来,在按 ...

  10. 第九十八节,JavaScript语法、关键保留字及变量

    JavaScript语法.关键保留字及变量 学习要点: 1.语法构成 2.关键字保留字 3.变量 任何语言的核心都必然会描述这门语言最基本的工作原理.而JavaScript的语言核心就是ECMAScr ...