- 浏览: 191914 次
- 性别:
- 来自: 深圳
最新评论
-
0dragon:
挺多 我试试先
android 状态栏(StatusBar) -
z494627:
这个加速插件是做什么用的?
Ubuntu10.04 搭建android平台
有时候我们需要对一个软件进行压力测试,检查该软件的性能。如果是人工进行测试的话,效率会低很多,而且会比较枯燥。这时,Android 中的一个命令行工具 Monkey 就可以为我们减轻很多重复而又繁琐的工作。
以下就Monkey
工具的简介、特性、基本用法、测试示例图解、测试的停止条件和命令参数说明等方面进行介绍。
一、Monkey
简介
至于Monkey
的名字是有何而来的呢?这个没有去怎么考究,
Monkey
这个工具就是一个调皮的猴子,在
App
中乱按、乱摸、乱滚、乱跳。
Monkey
测试是
Android
平台下自动化测试的一种快速有效的手段,通过
Monkey
工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。它的原理是向系统发送伪随机的用户事件流(如按键输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。
二、Monkey
的特性
(1
)测试的对象仅为应用程序包(
apk
包),有一定的局限性;
(2
)
Monkey
测试使用的事件流数据流是随机的,不能进行自定义;
(3
)可对
MonkeyTest
的对象、事件数量、类型、频率等进行设置。
虽然Monkey工具并不完善,但是足于应付应用程序的基本测试需要了。如果需要功能更强大的测试工具的话,可以使用
Monkey
的进化版
MonkeyRunner
。
如果把Monkey
看作是幼儿园的小孩,那么它的进化版
MonkeyRunner
就可以看作是一个初中生了。
它支持自定义插件,
控制事件
,
随时截图
,
简而言之
,
任何你在模拟器
/
设备中能干的事情
,MonkeyRunner
都能干
,
而且还可以记录和回放
。在这里,就不详细介绍MonkeyRunner了,具体可以参考其官方文档或者其他相关资料。
注:MonkeyRunner
官方文档的网址
三、Monkey
的基本用法
基本语法如下:
$ adb shell monkey [options]
如果不指定options
,
Monkey
将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送
1
000个伪随机事件:
$ adb shell monkey -p your.package.name -v number
$ monkey -p(
package
的意思) 指定文件名
-v
(测试的次数和频率)
number
(次数)
四、Monkey测试示例图解
通过简单的测试示例,初步了解并掌握Monkey
测试的步骤。注意,这里主要是使用
adb
命令进行安装和相关操作。测试的具体参考步骤如下:
(1)首先,先准备了一个测试用的应用程序(apk
文件)。为了测试,这里选择了一个格瓦拉手机购票
App
进行测试。下载地址为:
http://www.gewara.com/mobile/mobileMovie.xhtml
。
下载好后,得到下图所示的apk
文件。
(2)将apk
文件复制到
android sdk
对应
platform-tools
的目录下。例如,笔者的
sdk
路径为
D:\android\android-sdk-windows\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
文件的命令为:
adb uninstall
包名)
(6)这里是最关键的一步,使用moneky
命令进行自动化压力测试。
命令为:#monkey -p com.gewara -v 1000(参数说明:-p后跟着软件所在包名,
-v
后跟测试的次数)。这里对该软件进行
1000
次的自动化测试,几分钟内即可以完成测试。如图所示
(7)测试完毕,发现程序出错了。程序出错,表明该软件的稳定性和健壮性还有待提高。
这时,可以打开Lotcat查看出错信息。如图所示
五、Monkey
测试的停止条件
(1)如果先顶了Monkey
运行在一个或几个特定的包上,那么它会检测试图转到它包的操作,并对其进行阻止;
(2)如果应用程序崩溃或接收到任何失控异常,Monkey
将停止并报错
;
(3)如果应用程序产生了应用程序不响应(application not responding
)的错误,
Monkey
将会停止并报错。
通过多次并且不同设定下的Monkey
测试才算它是一个稳定性和健壮性足够的程序。
六、Monkey
命令参数说明
随着测试的深入,我们需要忽略App
的崩溃(
App
的崩溃会导致
Monkey
测试的停止),而不是停住,
monkey
同样能做到。
--ignore crashes
甚至,它还能生成profiling
报告。
--hprof
注:Monkey
具体参数的设定可参考:
Monkey使用:(附件为detect_memory.sh)
1、打开一个终端,运行monkey测试:
adb shell monkey -p com.android.calendar --throttle 2000 200002、另开一个终端,运行 . detect_memory.sh com.android.calendar 将该进程的内
存占用情况保存到当前目录下名为memory.txt的文件中,如果发现内存占用一直呈
增长的趋势,那就是有内存泄露了。
- detect_memory.rar (241 Bytes)
- 下载次数: 40
发表评论
-
adb logcat
2013-09-24 09:22 0android adb 使用教程: http://www.os ... -
(转)android中如何获得webView中的内容
2013-05-02 16:43 1184本文概要:在程序中经常会用到webView来显示网页,但如果 ... -
(转)【Android】Paint的效果研究
2013-04-15 15:44 34746在Paint中有很多的属性可以设置,比如可以设置阴影, ... -
(转)Android 四种launchMode
2013-04-08 15:55 10621,standard 每次都会新建 ... -
(转)Android TextView中链接(link)点击事件的截取
2013-04-08 10:58 2151布局文件xml 1 <TextView 2 ... -
Android JNI介绍
2013-01-17 19:44 3075附:相关代码路径 /fr ... -
区分Activity的四种加载模式
2013-01-06 19:19 0在多Activity开发中,有 ... -
android Makefile学习总结
2012-12-17 12:07 0(1)build.prop是如何生成的 Android 的 ... -
Ubuntu10.04 搭建android平台
2012-12-03 13:02 1168转自:http://www.cnblogs.com/Wonde ... -
Android SDK中tools详解
2012-11-29 09:48 0Android SDK包含了各种各 ... -
在Eclipse中查看Android源码
2012-11-16 11:32 989两件事的解决办法: ... -
Android中的长度单位
2012-11-09 11:02 995dp 和 sp px:表示屏幕实 ... -
Android 移动终端camera 防偷*拍设置
2012-09-28 16:14 2470目前市面上的所有移动终端几乎都有camera 应用,但A ... -
(转)【流媒體】Android 实时视频采集—Cameara预览采集
2012-09-25 13:54 146221 概述 通过Android Camera拍摄预览中设置se ... -
(转)android CAMERA 设置照片大小
2012-09-25 12:05 5162最近在 REAL210 android 上调试 CAMERA ... -
(转)Camera构架分析
2012-09-24 13:40 1599一.Camera构架分析 Android ... -
(转)Android Camera 开发之前言
2012-09-24 10:15 1739一、 Android Camera 成像原理介绍 ... -
(转)使用Memory Analyzer tool(MAT)分析内存泄漏
2012-08-09 15:14 1090前言 在平时工作 ... -
(转)Android NDK HelloJNI
2012-07-18 14:10 1579入门的最好办法就是学习Android自带的例子, 这里就通过学 ... -
(转)Android核心分析
2012-07-16 17:09 915文章皆来自CSDN网友 maxleng的专栏 ...
相关推荐
Android快速入门教程(图解)——Monkey工具
很好的教程,很适合初学者,图文并茂,很详细,有内容,pdf格式,方便阅读
图文并茂介绍SQL_Server_2000,很适合初学者
sniffer图解——不错的sniffer教程 网络学习者必备,下过来看看吧。哈哈
MHDD操作图文教程——手把手教,保证学会。内有附图,条理清晰,易学易会!
覆盖问题要求不会重复——采用set() 假设你要办一个广播电台,要让所有的8个州都听到,你要选择广播电台,如何选择尽可能少的广播电台 州集合,电台字典 # 包含所有州的集合 states_needed = set(['mt', 'wa', ...
Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解教程Java图解...
Serv-U组建个人,_——完全图解教程:FTP架设、端口映射、动态域名申请_选项
微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码...
企业ERP实施,企业ERP与企业管理,ERP实施人员的工具书
本系列文章第三篇:Windows2003服务器安装及设置教程——软件安装与设置篇——ASPJPEG安装图解 本系列文章第四篇:Windows2003服务器安装及设置教程——软件安装与设置篇——Jmail安装图解 本系列文章第五篇:...
toad中文教程+图解教程, 第三方工具,方便使用Oracle
Java图解教程.rarJava图解教程.rarJava图解教程.rarJava图解教程.rarJava图解教程.rarJava图解教程.rarJava图解教程.rar
C#图解教程(第5版)被誉为C#入门图书中的“神书”,是高效、深入掌握C#的不二之选! “想通过学习C#为你的编程生涯打下坚实的基础?这本书是我发自内心推荐给你的。” 为什么那么多C#学习者对《C#图解教程》...
Android开发环境搭建图解教程(完整过程详细步骤)
十天学会易语言图解教程。讲解挺清楚的! 名称 大小 修改时间 文件: 00十天学会易语言图解教程(王军)文字校正_前言.doc 57 KB 2010/3/7 16:12:32 文件: 01十天学会易语言图解教程(王军)文字校正_第一章.doc ...
OpenCms创建网站过程图解——献给OpenCms的初学者们,一起学习吧
2、Android 开发环境搭建步骤详细图解.pdf 3、Android用户手册.pdf 4、Android编程入门教程.pdf 5、Android开发从入门到精通.doc 6、Android开发手册——API函数详解.pdf 7、Android驱动开发入门及手机案例开发分析...
图解——高层建筑防火规范.pptx