一、        Monkey测试工具简介

 是Android \ SDK 中附带的一个工具  Monkey测试的原理:利用socket通讯(Android客户端和服务器以TCP/UDP方式)的方式来模拟用户的按键输入、触摸屏输入、手势输入等  Monkey测试的目的:该工具可进行压力测试,更多的是一种随机测试和稳定性测试;开发人员可以结合Monkey打印的日志和系统打印的日志来分析测试的结果

二、       Monkey的特征 

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

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

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

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

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

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

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

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

四、Monkey的命令 

Monkey可分四大类:常用选项、事件选项、约束选项、调试选项 

1、常用选项  -help : 打印帮助信息 monkey命令的简单帮助:adb shell monkey -help -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  日志级别 Level 2 示例:adb shell monkey -p com.htc.Weather -v -v -v 100 

2、事件选项  -s : 用于指定伪随机数生成器的seed(种子)值,如果seed相同,则两次monkey测试所产生的事件序列也相同  示例:adb shell monkey -p com.htc.Weather -s 10 100  --throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列) 如:--throttle 100  --pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:  --pct-motion (滑动事件)、  --pct-trackball (轨迹球事件) 、   --pct-nav (导航事件 up/down/left/right)、  --pct-majornav (主要导航事件 back key 、 menu key)、   --pct-syskeys (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、  --pct-appswitch (activity之间的切换)、  --pct-anyevent (任意事件) 

3、约束选项-c: activity必须至少包含一个指定的category,才能被启动,否则启动不了 -p: 用于约束限制,用此参数指定一个或多个包  如:指定一个包:adb shell monkey -p com.example.sellclientapp 100 指定多个包:adb shell monkey -p com.htc.Weather -p com.htc.pdfreader 100 说明:com.example.sellclientapp为包名,100是事件计数(即让monkey程序模拟100次随机用户事件)  要查看设备中所有的包,在CMD窗口中执行以下命令:

4、调试选项  --dbg-no-events:初始化启动的activity,但是不产生任何事件。  --hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。  --ignore-crashes:忽略崩溃 --ignore-timeouts:忽略超时  --ignore-security-exceptions:忽略安全异常  --kill-process-after-error:发生错误后直接杀掉进程 --monitor-native-crashes:跟踪本地方法的崩溃问题 --wait-dbg:直到连接了调试器才执行monkey测试

五、Monkey测试实例

  1、前提条件:启动一个 Android 的模拟器  打开DOS窗口,在命令行使用adb devices查看设备是否连接?

2、查看模拟器data/data文件夹的应用程序包,此目录下的应用程序包,我们都可以使用monkey进行测试,如下所示

3、可以选择一个应用程序包作为测试对象,如我们选择com.android.camera 相机应用作为测试对象 

4、使用monkey 命令执行测试   monkey -p com.android.camera -v 50  其中-p 表示对象包,-v 表示反馈信息的级别,50 表示事件数量。

5、在运行中,输入运行代码: monkey --pct-nav 100 -v 500 -p com.android.alarmclock 其中–pct-nav 100 表示全部产生基本按键事件,-p 表示对象包,-v 表示反馈信息的级别,500 表示事件数量,执行部分结果,注意 pct-nav 前面是两个“-”,如下图所

C:\Documents and Settings\9158.feng>adb shell monkey -p com.a.a -s 500 --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 50000 >C:\log.txt  指令的含义:测试的应用程序为com.a.a,事件间的延时为500毫秒,三个 -v 表示输出的MonkeyLog的级别为最高,即输出最详尽的Monkey Log,测试的事件次数为50000次 ,Log保存在C盘的log.txt

代码解析:

例如:adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts   --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt  说明:monkey作用的包:com.xy.android.junit 产生时间序列的种子值:500  忽略程序崩溃 、 忽略超时 、 监视本地程序崩溃、详细信息级别为2 , 产生 10000个事件  所产生的日志保存在:E:\monkey_log\java_monkey_log.txt

注:测试产生了日志,最重要的是要学会分析日志  在log中搜索4种关键字加以分析: 1、crash 闪退  2、exception 异常 3、force closed 强制退出   4、anr(application no response) 程序无响应

六,使用心得

Monkey直接翻译就是猴子的意识,他的作用和原理也如同猴子一样,有一个猴子在电脑前随便的点击滑动我们的安卓应用程序,直到他出现错误展示出来,这样的测试对于程序的健壮性有一个很好的模拟测试,也对程序员的工作量大大减少,他的操作也十分方便,对于我们以后的应用程序类的测试,操作按钮以及屏幕的交互可谓是十分重要的,也是直接影响到用户的第一使用体验从而影响了软件带个使用者的整体使用效果,所以monkey软件测试软件是一个很好的模拟测试软件的工具。

转载于:https://www.cnblogs.com/yangzixuan/p/10962823.html

Monkey软件测试工具介绍相关推荐

  1. 流行的软件测试工具介绍

    这篇文章主要介绍了流行的软件测试工具介绍,需要的朋友可以参考下 网络工具ATC 主页 http://facebook.github.io/augmented-traffic-control/ 代码托管 ...

  2. 100多种最佳软件测试工具介绍-2

    100多种最佳软件测试工具介绍-2    ----------------------------->测试自动化 之 集成/ API软件测试工具 --01-- >>集成/ API软件 ...

  3. badboy+jMeter+jProfile软件测试工具介绍(一)

    BadBoy测试工具介绍 一. 压力测试 压力测试是在强负载(大数据量.大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患.系统是否具有良好的容错能力和可 ...

  4. 《Google软件测试之道》 google软件测试工具介绍

    谷歌能高效,快速完成一系列产品的上线.迭代维护,其测试工具的功劳功不可没,提高测试效率,其中好多软件.及功能都已开源,今天主要给大家讲解几款非常具有影响力的软件: 1.BITE, BITE stand ...

  5. [原创]Android Monkey测试工具使用介绍

    [原创]Android Monkey测试工具使用介绍 1 Android Monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件 ...

  6. 软件测试工具有哪些?--最全最新的软件测试工具下载地址都在这里,错过绝对后悔

    一.前言 对于很多刚入行软件测试的童鞋,或者是做测试1-3年之内的童鞋来说,最多的疑惑就是在测试领域中究竟有哪些主流的软件测试工具呢?这里我们只谈主流,不谈非主流,因为非主流的工具使用的公司太少! 二 ...

  7. APP测试基础--小工具介绍(1)

    APP手机测试 Android测试常用术语 系统碎片化 屏幕尺寸(英寸) 分辨率 px(pixels)像素 dip/dp(device independent pixels)设备独立像素 sp(sca ...

  8. 史上最全的10类常用软件测试工具全都在这(共60+款工具)

    目前软件测试按类型划分比较细致,对应的功能软件也都比较广泛.本文介绍最常用的软件测试工具,希望对大家有所帮助. 我们将常用的测试工具分为10类. 一. 测试管理工具 二.接口测试工具 三.性能测试工具 ...

  9. 这几款嵌入式软件测试工具,好用到起飞~

    也许你陌生,但在智能物联网时代,人们会越来越关注嵌入式软件测试. 说起嵌入式软件测试,我们先快速了解一下嵌入式软件自身的特点.嵌入式软件具有实时性.内存空间有限.I/O通道少,而且要求功耗低.高可靠性 ...

最新文章

  1. r型聚类典型指标_常用的聚类算法及聚类算法评价指标
  2. 如何使linux中java支持中文
  3. kafka 启动_「首席看Event Hub」如何在您的Spring启动应用程序中使用Kafka
  4. Simulink中DPCM量化和编码仿真
  5. [iOS]服务器使用php时多图片上传AFNetworking的设置
  6. 操作系统原理之操作系统简介(第一章)
  7. 惠新宸php教程_惠新宸:首位国人加入PHP语言官方开发组
  8. 光端机各种类型的接口介绍
  9. jQuery模拟原生态App上拉刷新下拉加载效果代码
  10. maven:同一个项目内模块之间互相调用
  11. HUST 1585 排队
  12. centos7.4下的KVM虚拟机安装使用
  13. WOMic 使用wifi 将手机作为电脑麦克风音频输入
  14. mysql积分表和业务表_积分相关数据库表该如何设计?业务表和积分明细表该如何匹配上...
  15. Unity 实现两个向量夹角为0~360度
  16. 公司银企对账怎么操作
  17. HTML,css和JavaScript的基础学习—JavaScript篇
  18. Mysql主从复制之异步与半同步以及主从切换(实验)
  19. HFM student Hyperion Financial Management
  20. 流动资金池:我们需要知道的一切

热门文章

  1. spring 常用注解汇总
  2. DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null
  3. gdp笔记本 linux,Ubuntu MATE 19.04和18.04.2现在可用于GPD Pocket和GDP Pocket 2
  4. 【CCCC】L2-007 家庭房产 (25分),并查集,结构统计
  5. 【NOIP2014】【Luogu2118】比例简化(枚举)
  6. dbutils mysql_mysql之DBUtils
  7. mysql 创建聚集索引_索引为什么会加快Mysql的查询速度?
  8. jquery修改样式通过css方法
  9. JavaScript文档对象模型document对象查找Html元素(2)
  10. Python入门--while循环