Monkey测试详解

Monkey测试详解
Monkey测试详解

一、什么是Monkey

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

二、Monkey的特征

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

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

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

三、在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey 还对测试中的系统进行监测,对下列三种情况进行特殊处理:

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

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

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

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

四、Monkey使用流程

总的来说使用monkey进行测试是比较简单的,只是需要做一些比较复杂的准备工作。下面详解测试步骤(很简单的哦),所讲内容是建立在已经配置好ADB环境的基础上(如果这部分不清楚请先google一下先配置好环境,这里不做描述)。

1、ADB连接Android测试设备。

2、确定你要测试的应用的PackageName。

3、使用Monkey发一条测试命令。

步骤详解

步骤确实很简单吧。不敢保证读者都明白如何去完成上面的步骤,这里讲讲每步如何做。

1、ADB连接Android测试设备。

如果你用的是模拟器,那么启动后通常是已经连在ADB上了。对于真机来说两种方式都可以:

方式一:使用USB把Android设备接到PC上,然后装上驱动(不好找驱动的话就用豌豆荚吧)。

方式二:首先得确保你的Android已经成功root了,那么可以使用wifi无线连接。①下载一个wifi adb应用装在你的android设备上;②在android上打开wifi adb;③在pc上的命令行中输入wifi adb中显示的那部分内容:adb connect 192.168.x.x,命令行中显示connected 192.168.x.x那么说明连接好了。(这样可以不用去下载驱动(主要是驱动很多都不稳定),而且不伤害电池。长时间插在USB上对电池始终是不好的。只不过这种方式设备一旦休眠那么就可能需要重连。)

连上设备之后在CDM命令行输入adb devices 查看设备连接情况,如若出现

List of devices attached

emulator-5554 device

说明设备连接成功

2、确定你要测试的应用的PackageName。

先说明一下这里讲的方法是通用的,而网上其他方法获取PackageName不然不通用(因为他是建立在root的基础上的,我不敢保证你的设备已经root)。

①在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”。马上就会用。

如果实在不知道PackageName,并且设备没有root,那么在你的手机的文件管理中找Android/Data目录,在里面找你的包名吧

3、使用Monkey发一条测试命令。

这一步就比较简单了。直接在pc上的命令行输入:adb shell monkey -p com.vane -v 50

备注:上面命令中的com.vane就是之前获得的包名;命令中的参数你可以自己根据需要参考上面的参数文档进行修改。

4、观察android设备,直到Monkey停止。

5、如果应用崩溃的话就好分析一下Monkey中的信息。

如果要将Monkey执行的Log保存,用命令:

adb shell monkey –p com.vane –vvv 1000 > monkey1000.txt

五、Monkey命令参数介绍

1) 参数: -p

参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定

包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

* 指定一个包:adb shell monkey -p com.htc.Weather 100

说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。

* 指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p

com.htc.photo.widgets 100

* 不指定包:adb shell monkey 100

说明:Monkey随机启动APP并发送100个随机事件。

* 要查看设备中所有的包,在CMD窗口中执行以下命令:

>adb shell

#cddata/data

#ls

2) 参数: -v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

日志级别Level0

示例adb shellmonkey -p com.htc.Weather –v 100

说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别Level 1

示例adb shellmonkey -p com.htc.Weather –v -v 100

说明提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别Level 2

示例adb shellmonkey -p com.htc.Weather –v -v –v 100

说明最详细的日志,包括了测试中选中/未选中的Activity信息

3)参数:-s

用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

* 示例:

Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100

Monkey 测试2:adb shell monkey -p com.htc.Weather–s 10 100

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

4) 参数:--throttle <毫秒>

用于指定用户操作(即事件)间的时延,单位是毫秒;

* 示例:adb shell monkey -p com.htc.Weather –throttle 3000 100

5) 参数:--ignore-crashes

用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

* 示例1:adb shellmonkey -p com.htc.Weather --ignore-crashes 1000

测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;

* 示例2:adb shellmonkey -p com.htc.Weather 1000

测试过程中,如果Weather程序崩溃,Monkey将会停止运行。

6) 参数:--ignore-timeouts

用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

7) 参数:--ignore-security-exceptions

用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

8) 参数:--kill-process-after-error

用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

9) 参数:--monitor-native-crashes

用于指定是否监视并报告应用程序发生崩溃的本地代码。

10) 参数:--pct-{+事件类别}{+事件类别百分比}

用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

参数:

使用说明:

示例:

--pct-touch {+百分比}

调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置) adb shell monkey -p com.htc.Weather--pct-touch 10 1000

--pct-motion {+百分比}

调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)adb shell monkey -p

com.htc.Weather --pct-motion 20 1000

--pct-trackball {+百分比}

调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

adb shell monkey -p com.htc.Weather--pct-trackball 30 1000

--pct-nav {+百分比}

调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

adb shell monkey -p com.htc.Weather--pct-nav 40 1000

--pct-majornav {+百分比}

调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

adb shell monkey -p com.htc.Weather--pct-majornav 50 1000

--pct-syskeys {+百分比}

调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

adb shell monkey -p com.htc.Weather--pct-syskeys 60 1000

--pct-appswitch {+百分比}

调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

adb shell monkey -p com.htc.Weather--pct-appswitch 70 1000

--pct-anyevent {+百分比}

调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

adb shell monkey -p com.htc.Weather

--pct -anyevent 100 1000* 指定多个类型事件的百分比:

adb shell monkey -p com.htc.Weather--pct-anyevent 50 --pct-appswitch 50 1000

注意:各事件类型的百分比总数不能超过100%;

Monkey测试方法总结

monkey测试方法总结 测试策略:全模块、单模块 测试步骤: 1、测试前准备: 1.PC侧安装adb驱动,使用adb shell命令不报错 2.手机设置:锁屏方式设置为无,屏幕亮度建议设成最低(防止电量消耗过大导致关机) 3.手机为刚刷的新版本或者进行一次恢复出厂设置 备注:或测试前请先删除自行安装的第三方:手机助手、测试工具apk等等 4.休眠设成最长时间或不休眠 5.设置-开发者选项中勾选不锁定屏幕 6.设置手机时间为当前正确时间 7.若要测试上网请连接可用wifi或打开数据业务 8.测试前需开启aplog*#*#201206#*#* 备注:测试前请确保日志功能开启,测试完成后先保存日志 adb root adb remount adb shell rm -rf /data/logs/* 作用就是删除以前的旧log 工具使用前请确定手机版本为debug版本,PC 的adb命令使用正常 附件解压到任意目录,双击InstalllogClient.bat会自动安装logClient客户端并重

启 手机配置: 1. 连接热点360WiFi-6CDC31,连接密码为xdjatest 2. 输入密码后勾选下面的高级选项-》将DHCP选项改为静态-》设置IP地址为11.12.112.196至199之间的IP,设置完IP直接点击连接,连接上热点后即配置完毕 2、测试执行: 先执行命令adb shell 再输入如下的命令: 全模块: monkey--throttle500--ignore-crashes--ignore-timeouts--ignore-security-exc eptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/st orage/sdcard0/monkey_log.txt& 单模块: monkey-p.xdja.ncser--throttle500--ignore-crashes--ignore-timeouts--ign ore-security-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/storage/sdcard0/monkey_log.txt& 备注: 1、单模块命令加:-p模块包名; 2、测试9小时使用180000,测试18小时使用375000

移动APP测试之Monkey Test 运用

移动APP测试之Monkey Test 运用 Monkey是Android平台自动化测试的一种手段,可以在模拟器里或实际设备中运行,它向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等,实现对正在开发的应用程序进行压力测试。 当然对于移动APP测试,monkey测试出了压力测试外,也可以做做简单的机型配适,就是测试App是否会出现crash等异常,以此来判读其释放与机型适配,可以发现程序无响应问题和崩溃问题。 接下来简单说说: Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar; Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey; 特征 1、测试的对象仅为应用程序包,有一定的局限性。 2、Monky测试使用的事件流数据流是随机的,不能进行自定义。 3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。 这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。 基本使用 1. 进入monkey 命令:adb shell/system/bin/monkey 2. 运行monkey 命令:adb shell monkey 是指随机发送事件数 adb shell monkey 100,运行monkey并执行了100件随机事件。 3. monkey常规类命令 adb shell monkey -h 显示monkey参数帮助信息usage adb shell monkey -v 打印出日志信息,每个-v将增加反馈信息的级别,最多支持3个-v 4. monkey事件类命令

monkey测试指南

Monkey 测试指南 前言 Monkey。顾名思义就是像只活泼的猴子,乱按乱跳乱来。术语上来讲,就是产生各种各样的随机事件来对软件进行测试。其优点缺点都是不可控性。好处是脱离测试的习惯框架,多次的组合测试可以暴露出不少隐性的问题(就是把程序搞崩溃,哈哈);缺点则是无法得出具体的缺陷在哪,重现步骤如何等等的具体问题,往往我们得就是崩溃跟超时。 测试目的 检测该软件的稳定性、健壮性。它的原理是向系统发送伪随机的用户事件流(如按键输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。 测试格式 基本语法如下: $ adb shell monkey [options] 如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送1000个伪随机事件: $ adb shell monkey -p https://www.360docs.net/doc/709164387.html, -v number $ monkey -p(package的意思)指定文件名-v(测试的次数和频率)number(次数)测试流程 通过简单的测试示例,初步了解并掌握Monkey测试的步骤。注意,这里主要是使用adb命令进行安装和相关操作。测试的具体参考步骤如下: (1)首先,先准备了一个测试用的应用程序(apk文件)。为了测试,这里选择了云菜单 下载好后,得到下图所示的apk文件。 (2)将apk文件复制到android sdk对应platform-tools的目录下。例如,笔者的sdk路径为

D:\adt-bundle-windows-x86-20131030\sdk\platform-tools。如图所示 (3)进行apk文件的安装(安装的前提是,已经启动并可以检测模拟器):有安装91助手或者豌豆的用户可以直接双击apk文件进行安装;也可以使用android下的adb命令进行安装(如下图所示,Success表示安装成功)。adb命令下安装apk文件的命令为:adb install 文件名.apk。 (4)安装好后,会在模拟器上看到应用程序的启动图标 (5)安装好apk文件后,需要知道应用程序主Activity(第一个启动的Activity)所在的包名。这时,我们可以使用adb shell命令查找到程序主Activity所在的包名,如下图所示。(知道了apk的包名,我们也可以利用adb命令进行应用程序的卸载;卸载apk文件的命令为:

Android平台Monkey测试标准

Android 平台及整机测试测试标准要求大纲(初稿)一、Android系统测试 平台Monkey测试标准 1)系统稳定性测试 2.StabilityTest系统测试 主要对对CPU、CPU+GPU、内存运行灯作稳定性测试,测试过程中不发生任何异常和报错为通过,测试时间>5小时,至少测试10次,样机>5台。

4.WDT等保护机制测试 详细看研发保护机制方案 二、整机测试 测试整机发热及散热情况、监控CPU等主要芯片工作时温度情况 3.整机跑分测试 CPU、GPU、内存等用不同跑分软件测试,要求至少使用主流的三款以上跑分软件分别测试整机性能,并与目前已有的对手整机(同解决方案)进行对比,要求同一配置下整机跑分不低于对手同级别设备; 4.整机压力挂机测试 全功能开启,加载大应用情况下,挂机一周,中间无异常情况,而MTBF暂无测试方法5.环境及电气参数测试(高低温测试要求达标标准按照此前需求文档,但不能低于此文档要求) 硬件环境测试 1)依据标准 GB 191-2000 包装储运图示标志 GB 1002-1996 家用和类似用途单相插座形式尺寸 GB 家用和类似用途插头插座第一部分:通用要求 GB/T 2421-1999 电工电子产品环境试验第一部分:总则 GB/T 2422—1995 电工电子产品环境试验术语 GB/T —2001 电工电子产品环境试验规程试验A:低温试验方法 GB/T —2001 电工电子产品环境试验规程试验B:高温试验方法 GB/T —1993 电工电子产品环境试验规程试验Ca:恒定湿热试验方法 GB/T 计数抽样检验程序第1部分:按接收质量限(AQL)检索 的逐批检验抽样计划 GB/T 包装件基本试验温湿度调节处理 GB/T 包装件基本试验跌落试验方法

Monkey测试简介[附示例]

一、Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。 二、Monkey程序介绍 1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar; 2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。 三、Monkey命令的简单帮助 要获取Monkey命令自带的简单帮助,在CMD中执行命令: adb shell monkey –help 四、Monkey命令参数介绍 1) 参数: -p 参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定 包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。 * 指定一个包:adb shell monkey -p com.htc.Weather 100 说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。 * 指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100 * 不指定包:adb shell monkey 100 说明:Monkey随机启动APP并发送100个随机事件。 * 要查看设备中所有的包,在CMD窗口中执行以下命令: >adb shell #cd data/data #ls 2) 参数: -v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示: 日志级别Level 0 示例adb shell monkey -p com.htc.Weather –v 100 说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息 日志级别Level 1 示例adb shell monkey -p com.htc.Weather –v -v 100 说明提供较为详细的日志,包括每个发送到Activity的事件信息

Monkey操作手册

Monkey操作手册 一、Monkey a) Monkey是什么? Monkey就是SDK中附带的一个工具。Monkey测试是Android自动化测试的 一种手段,Monkey测试本身非常简单,当Monkey程序在模拟器或设备运行 的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候, 它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开 发的软件。 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。 它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等), 实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件 的稳定性、健壮性的快速有效的方法。 b) Monkey测试的目的? 该工具用于进行压力测试。然后开发人员结合monkey打印的日志和系统打印的日志,结合测试中出现的问题。 c) Monkey的特征 i. Monky测试使用的事件流数据流是随机的,不能进行自定义。 ii. 测试的对象仅为应用程序包,有一定的局限性。 iii. 可对Monkey的对象,事件数量,类型,频率等进行设置。 二、环境搭建 a)连接手机: 1 Android需要Root,2 (不必须)安装RE,控制data/data 挂载权限工具安装 i.JDK安装:详细:JDK安装配置 ii.SDK安装:建议拷贝SDK包,解压后配置SDK环境变量或安装详细:SDK 安装配置 至此环境安装就结束了 三、Monkey:连接真机 因为模拟器和真机的巨大差距,建议使用真机做Monke自动化测试,如果没有真机,自行安装虚拟模拟器。 a)在cmd窗口下面输入adb decixes 显示出真机连接型号。 如果未出现

Android测试命令行工具Monkey使用教程

Monkey是什么 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 https://www.360docs.net/doc/709164387.html, -v 500 命令选项参考

Monkey测试简介

Monkey测试简介 shell, monkey, system, Android, 文件系统Monkey, 示例, 简介 一、Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压 力测试,检测程序多久的时间会发生异常。 二、Monkey程序介绍 1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar; 2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey; 这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。 三、Monkey命令的简单帮助 要获取Monkey命令自带的简单帮助,在CMD中执行命令: adb shell monkey –help 四、Monkey命令参数介绍 1) 参数:-p 参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定 包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。 * 指定一个包:adb shell monkey -p com.htc.Weather 100 说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。 * 指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100 * 不指定包:adb shell monkey 100 说明:Monkey随机启动APP并发送100个随机事件。 * 要查看设备中所有的包,在CMD窗口中执行以下命令: >adb shell #cd data/data #ls 2) 参数: -v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

monkeyrunner测试

android自动化测试框架:CTS、monkey、monkeyrunner、benchmark monkeyrunner monkeyrunner工具提供了一个API,运用该API编写的程序可以不用通过android代码来直接控制android设备和模拟器,我们可以写一个python程序对android应用程序或测试包进行安装、运行、发送模拟击键,对用户界面进行截图并将截图存储在workstation上等操作。monkeyrunner工具的主要设计目的是用于测试application/framework层上的应用程序和设备、或用于运行单元测试套件,也可以用于其它目的。 monkey工具,是直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流。 monkeyrunner为android测试提供了以下独特的功能: 1、多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。可以在同一时间接上所有设备或一次启动全部模拟器,依据程序依次连接到每一个,然后运行一个或多个测试。也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。 2、功能测试:monkeyrunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。

4、回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。 4、可扩展的自动化:由于monkeyrunner是一个API工具包,我们可以开发基于python模块和程式的一整套系统,以此来控制android设备。除了使用monkeyrunner API,我们还可以使用标准的python os和ubprocess模块来调用android debug bridge 这样的android工具。如ADB这样的android工具,也可以将自己写的类添加到monkeyrunner API中。 运行monkeyrunner 可以直接使用一个代码文件运行monkeyrunner,抑或在交互式对话中输入monkeyrunner语句。不论使用哪种方式,你都需要调用SDK目录的tools子目录下的monkeyrunner命令。如果提供一个文件名作为运行参数,则monkeyrunner将视文件内容为python程序,并加以运行;否则,它将提供一个交互对话环境。 monkeyrunner命令语法 monkeyrunner -plugin monkeyrunner API 主要包括三个模块 1、MonkeyRunner:这个类提供了用于连接monkeyrunner和设备

Monkey测试详解

一、什么是Monkey Monkey是Android SDK提供的一个命令行工具,可以运行在任何版本的模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法,检测程序多久的时间会发生异常。 二、Monkey的特征 1、测试的对象仅为应用程序包,有一定的局限性。 2、Monky测试使用的事件流数据流是随机的,不能进行自定义。 3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。 三、在Monkey运行的时候,它生成事件,并把它们发给系统。同时,Monkey 还对测试中的系统进行监测,对下列三种情况进行特殊处理: ·如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。 ·如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。 ·如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。 按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。 四、Monkey使用流程 总的来说使用monkey进行测试是比较简单的,只是需要做一些比较复杂的准备工作。下面详解测试步骤(很简单的哦),所讲内容是建立在已经配置好ADB环境的基础上(如果这部分不清楚请先google一下先配置好环境,这里不做描述)。 1、ADB连接Android测试设备。 2、确定你要测试的应用的PackageName。 3、使用Monkey发一条测试命令。 步骤详解 步骤确实很简单吧。不敢保证读者都明白如何去完成上面的步骤,这里讲讲每步如何做。

monkey压力测试工具使用入门

安卓Monkey工具 对于安卓app,可以使用Monkey[MON01]工具,它是安卓软件开发工具包(SDK)。Monkey 工具在物理设备或仿真器上都可以运行。运行时它生成虚拟随机的用户事件比如触摸,点击,旋转,重击,减低音量,关闭网络连接等对app进行压力测试,看看app是如何处理所有这些输入和中断的。你需要安卓apk文件的安装包名来执行Monkey工具,不然该工具就会针对整个手机执行其的随机命令而不是只对被测APP了。有了app代码,就可以在AndroidManifest.xml中找到安装包名。如果只有编译的apk文件,移动测试员可以使用Android Asset 打包工具 [AAP02] (AAPT),从app上获得安装包名。AAPT位于安装好的Android SDK的build-tools文件夹中。AAPT的路径如下: 用下面的命令,可以从apk文件中读出安装包名。 输入就会如下所示: 如果有了安装包名(本例中是com.myApp),就用adb (Android Debug Bridge) [ADB03]执行Monkey。下列命令将开始Monkey: 2000年表明了Monkey将在app上执行的随机命令的数量。有一个额外的参数, Monkey 将再次生成相同序列的事件。这对Monkey执行期间再现一个bug真的很重要。 UI AutoMonkey 对于iOS app来说,还可以使用一个类似的工具——UI AutoMonkey [UIA04]。UI AutoMonkey也能生成多个命令来对iOS app进行压力测试。要使用UI AutoMonkey,UIAutomation工具模板就要配置Xcode。配置好了之后,需要写一个JavaScript文件讲明压力测试期间需要执行多少以及哪些命令。

monkey命令详解

Android上压力测试命令monkey详解 一、Monkey 是什么 ◆Monkey是Android SDK中附带的一个命令行工具,可以运行在模拟器或者实际设 备中 ◆向系统发送伪随机的用户事件流(按键输入、触摸屏输入、手势输入等) ◆实现对正在开发的应用程序进行压力测试 ◆Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法 二、Monkey程序介绍 ◆Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中 的存放路径是:/system/framework/monkey.jar ◆Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在 Android文件系统中的存放路径是:/system/bin/monkey 三、Monkey 测试的目的 开发人员结合monkey 打印的日志和系统打印的日志,分析测试中出现的问题 ◆ANR问题:在日志中搜索“ANR” ◆崩溃的问题:在日志中搜索“Exception” 说明: ANR:Application Not Responding,在Android中,如果应该程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应对话框,用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”应用。好的程序应该能流畅运行,不能出现ANR问题。 四、Monkey 测试的特点 ◆测试的对象仅为应用程序包,有一定的局限性(不能对源码进行测试) ◆测试使用的所有事件流数据流都是随机产生的,不能进行自定义,不带任何人的主 观性 ◆可对MonkeyTest的对象,事件数量,类型,频率等进行设置 五、Monkey 命令详解 1、标准的monkey 命令 [adb shell] monkey [options] 如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包 如:adb shell monkey -p https://www.360docs.net/doc/709164387.html, -v 500 -p 指定测试程序包名

monkey测试基本操作文档

Monkey测试基本操作 一.简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。 二.操作步骤: 1.进入D:\eclipse(eclipse的安装路径),打开eclipse 2.点击菜单栏上面的第五个图标Opens the Android SDK and AVD Manager,如下图所示 3.弹出Android SDK and AVD Manager对话框,如下图所示 4.选中Android 2.2,点击右边的Start,启动模拟器

5.点击开始----运行---cmd,确定,打开命令行 6.在命令行中输入:adb devices查看设备连接情况 C:\Documents and Settings\Administrator>adb devices List of devices attached emulator-5554 device 7.在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面 C:\Documents and Settings\Administrator>adb shell # 8.输入ls查看当前文件夹下的目录,执行结果如下 C:\Documents and Settings\Administrator>adb shell # ls ls config cache sdcard acct mnt d etc system sys sbin proc init.rc init.goldfish.rc init default.prop

【Android Monkey自动测试工具使用报告】

关于Android Monkey自动化测试的报告 1自动化测试背景 软件测试是软件产品开发过程中的重要环节。测试对于发现软件中缺陷,保障软件的质量具有重要意义。统计表明,软件测试的时间通常占到软件开发时间的40%,一些可靠性要求高的软件甚至高达60%以上。 手工测试和自动化测试是软件测试的两种基本手段,二者相互补充,不可相互替代。其中,自动化测试能捕捉到资源冲突、多线程、死锁等手工测试难以发现的错误,可以高效的完成大量机械性、重复性测试,能模拟大量数据或大量并发用户等应用场景,从而有效的缩短软件测试周期,提高测试的可靠性及准确度。 2什么是Monkey Monkey测试是Android自动化测试的手段之一,它通过模拟用户的按键输入、触摸屏输入等,测试设备多长时间出现异常。Monkey是一个命令行工具,可以运行在模拟器或实际设备中,通过向系统发送伪随机的用户事件流,实现对全系统或某个应用程序进行压力测试。 Monkey工具使用非常简单,直接在命令窗口键入monkey命令即可进行测试。Monkey命令有较多的配置选项,为便于理解这些命令,此处先将其命令选项简单划分为四大类,在后文中陆续介绍各种命令选项的使用,然后在附录中附上整个monkey命令选项便于查阅。Monkey命令可简单分为如下四类: 基本配置选项,如设置尝试的事件数量 运行约束选项,如设置只对单独的一个包进行测试 事件类型和频率,如设置触摸屏事件的发生频率 调试选项,如设置忽略应用程序异常,继续向系统发送事件,直到计数完成 3使用monkey进行自动化测试 Monkey命令工具可以在模拟器和实际设备上使用。这里分别对两种环境下的monkey测试进行介绍。 3.1 在模拟器上运用Monkey进行自动化测试 3.1.1 monkey命令最简单用法 首先,介绍最简单monkey命令用法,其使用格式为如下: monkey n 其中,n为一个整数,表示用于测试的伪随机事件发生的次数。 如图3.1所示,启动模拟器。然后,在命令行窗口下输入adb shell命令,如图3.2所示。登录shell之后,即可使用monkey命令。最简单的用法是,直接在其后面指定一个数字,表示向系统发送事件的数量,如图3.3所示。模拟器的测试的结果如图3.4所示。

MonkeyRunner(猴子测试步骤)

首先把安卓SDK的环境变量给配置好,这里就不再多解释,自己google 然后将自己的安卓设备打开调试模式,USB连接至电脑,运行CMD,输入命令adb devices 查看你的安卓设备的ID(ID后面写程序会调用),如下图所示: 继续在这个命令提示框中输入 monkeyrunner,进入monkeyrunner的shell命令交互模式。如图: 进入shell命令交互模式后,首要一件事就是导入monkeyrunner所要使用的模块。直接在 shell命令下输入: from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice回车

这2步完成就可以就行monkeyrunner的测试了。 下面的一个例子是连接手机并且点击菜单按钮,之后截图保存(注:以下命令全部在CMD monkeyrunner环境下运行) 第一: # 连接安卓设备,其中4d007e9a1b0050d1 是设备的ID 上面有提到通过abd devices 获得 device = MonkeyRunner.waitForConnection(5,'4d007e9a1b0050d1') 第二: #安装apk文件到这个设备 device.installPackage('E:\Education - 136_8080.apk') 安装成功以后会返回true 第三: # sets a variable with the package's internal name(设置包名) package = 'https://www.360docs.net/doc/709164387.html,cation'

Monkey测试和分析

Monkey测试和分析 1.Monkey命令配置 针对9130的配置特点,Monkey命令的配置有如下要求: ●无键盘:无键盘按键事件 ●无轨迹球:无轨迹球按键事件 ●无物理导航键:无基本导航事件 ●大部分事件为Touch和Motion ●事件间隔发送时间1000 ●出现各种异常(崩溃异常、超时异常、安全异常)时Monkey继续运行 ● Monkey整机测试配置命令如下: adb shell monkey --throttle 1000 -s 12345678 --pct-anyevent 0 --pct-trackball 0 --pct-nav 0 --pct-majornav 2 --pct-appswitch 2--ignore-crashes --ignore-timeouts --ignore-security-exceptions--monitor-native-crashes –v –v 100000 > Monkey_log.txt 参数说明:--throttle 1000 Monkey发送事件的时间间隔 -s 12345678 Monkey发送事件的序列 --pct-anyevent 0 按键、不常用的设备按键事件百分比设为0 --pct-trackball 0 轨迹球事件百分设比为0 --pct-nav 0 基本导航(up、down、left、right)事件百分比设为0 --pct-majornav 2 主要导航(中间按键、回退按键、菜单)事件百分比设为2 (9130用了Menu键,所以不能设为0,但又不能没有 此事件) --pct-appswitch 2 Monkey调用startActivity()方法的百分比设为2 --ignore-crashes 忽略崩溃异常 --ignore-timeouts 忽略超时异常 --ignore-security-exceptions 忽略安全异常 -v –v Monkey日志显示的详细级别(有按键类型) Count=10000 Monkey 发送事件的次数(根据情况设定) 单个或多个应用测试:需要在monkey 后加上应用程序的package名。–p 指定。其它命令查看可用adb shell monkey来查看详细参数。

APP测试--Monkey命令

shell, monkey, system, Android, 文件系统Monkey, 示例, 简介 一、Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压 力测试,检测程序多久的时间会发生异常。 二、Monkey程序介绍 1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar; 2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android 文件系统中的存放路径是:/system/bin/monkey; 这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。 三、Monkey命令的简单帮助 要获取Monkey命令自带的简单帮助,在CMD中执行命令: adb shell monkey –help 四、Monkey命令参数介绍 1) 参数:-p 参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定 包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。 * 指定一个包:adb shell monkey -p com.htc.Weather 100 说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。 * 指定多个包:adb shell monkey -p com.htc.Weather–p com.htc.pdfreader -p com.htc.photo.widgets 100 * 不指定包:adb shell monkey 100 说明:Monkey随机启动APP并发送100个随机事件。 * 要查看设备中所有的包,在CMD窗口中执行以下命令: >adb shell #cddata/data #ls 2) 参数: -v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示: 日志级别Level0 示例adbshellmonkey -p com.htc.Weather–v 100 说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息 日志级别Level 1

APP测试之monkey测试

monkey:andriod自带命令工具,可以用于测试应用或者系统的稳定性。 monkey与monkey runner的区别: monkey作为一个向待测的应用发送随机按键消息的测试工具,验证待测应用在这些随机的输入面前是否闪退或者崩溃。 monkey runner则接受一个明确的测试脚本(使用python语言编写)。 配置环境环境变量 检查环境环境配置adb adb命令 adb devices:查看连接中的设备 adb shell:进入连接设备 qq包名:com.tencent.mobileqq adb命令就是连接windows和安卓手机之间的一个桥梁 monkey命令格式: monkey 参数伪随机事件数量 参数:-p 包名 例子:用monkey测试应用qq,并向其发送1000次随机按键消息 monkey -p com.tencent.mobileqq 1000 参数:-v 日志级别 默认日志级别是0级,最高是2级 日志级别Level 0 示例:monkey -p com.tencent.mobileqq -v 1000 说明:缺省值:仅提供启动提示、测试完成和最终结果等少量信息 日志级别Level 1 示例:monkey -p com.tencent.mobileqq -v -v 1000 说明:提供较为详细的日志,包括每个发送到Activity的事件信息 日志级别Level 2 monkey -p com.tencent.mobileqq -v -v -v 1000 说明:最详细的日志,包括了测试选中/未选中的Activity信息 触控事件:触控是指在一点上先后有手指按下和抬起的事件(--pct-touch) 例子:测试触控事件生成的百分比为100% monkey -vv --pct-touch 100 -p com.tencent.mobileqq 1000 另外一种写法:monkey -p com.tencent.mobileqq --pct-touch 100 -v -v 1000

Monkey测试性能报告

Monkey测试性能报告 软件简介 Monkey测试是Android自动化测试的一种手段。Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。 当Monkey程序在模拟器或真实设备运行的时候,程序会产生一定数量或一定时间内的随机模拟用户操作的事件, 如点击,按键,手势等,以及一些系统级别的事件。通常也称随机测试或者稳定性测试。 软件特点 monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件。测试案例 Windows下: 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 https://www.360docs.net/doc/709164387.html,erdictionary

Monkeyrunner操作测试

Monkeyrunner操作手册 一、自动化测试的原理 a) 手机自动化测试的原理 i. 手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent 端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工 具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析, 然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调 用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可 以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测 试。 ii. 关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端; 原理就是给手机提供一个响应的接口。 iii. 而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义。 iv. 而有的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制) v. 自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。 b) MonkeyRunner自动化测试的原理 MonkeyRunner工具提供了一个API,运用该API编写的程序可以不用通过 Android代码来直接控制Android设置和模拟器,我们可以写一个Python程 序对A ndroid应用程序或测试包进行安装,运行,发送模拟击键,对用户界 面进行截图并将截图存储在指定目录上等操作。 二、环境搭建 a)连接手机: 1 Android需要Root;2 (不必须)安装RE,控制data/data 挂载权限工具安装 i.JDK安装:详细:JDK安装配置 ii.SDK安装:建议拷贝SDK包,解压后配置SDK环境变量或安装详细:SDK 安装配置 iii.安装apktool,下载apktool包,解压后,拷贝到SDK:..sdk\tools\下 iv.Python编译器安装: 1.下载python安装包 2.双击打开python 3.选择安装路径,点击NEXT,到安装完成 4.配置python环境变量,在添加python安装地址

相关文档
最新文档