Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上。它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试。
官方介绍 :https://developer.android.com/studio/test/monkey.html。
测试?这不是抢测试妹子的饭碗么?肯定不是啦,我们总不能感觉写好了代码,就把一个带有BUG的项目扔给测试妹子吧, 那样的话我们可能还要花一些
时间和测试妹子进行N场口水战。我们要先对我们写地代码进行自测,自测感觉OK了再抛给测试妹子让帮忙全面检查。
自测当然可以不用Monkey,比如装上app ,按流程按功能东点点西点点,看程序能不能走通,有没有出现崩溃等问问题。
但这显然是不够的,我们要想到对程序进行压力测试进行摧残,比如连续测试10000次,如果我们人为都来操作,估计已经累趴了。
所以我们还要想到偷懒呀,让自动化工具给我们测试,所以我们就想到了Monkey。
  • 第一步:搭建环境:主要是安装和搭建java和sdk环境,说白了,对我们安卓开发来说,只要搭建好了Android开发环境,Monkey测试环境基本就是OK的了。可以参考:http://www.cnblogs.com/sylovezp/p/3623588.html
  • 第二步:准备好要测试的项目,比如可以是一个.apk安装包,也可以是已经安装到手机上的软件 。
  • 第三步:连接上Android测试设备,可以是模拟器,当然也可以是手机,通过adb 命令对测试项目进行Monkey测试。

–adb monkey测试相关命令介绍:——–

  • 1,adb install xx.apk:把指定的安装包apk文件安装到测试设备中
  • 2,adb shell monkey :给指定的设备发送压力测试,number是要测试的次数。执行这个命令的效果就相当于有个手指在你的手机上乱点。我尝试了10000次,结果费了好一会儿功夫才把手机恢复到我想到的效果。
  • 3,adb shell monkey -p pkgname :同上面效果一样,只是对指定包名(pkgname)apk进行测试。
  • 4,Monkey高级参数的应用 
    4.1.throttle参数:指定事件之间的间隔时间 
    adb shell monkey -throttle :milliseconds是时间值 ,单位毫秒 
    4.2.seed参数:伪随机数生成器的seed 值。 
    adb shell monkey -s :如果用相同的 seed 值再次运行 Monkey ,它将生成相同的事件序列。 
    4.3.touch:设置触摸事件 
    adb shell monkey -pct-touch :指定touch事件的百分比percent 
    4.4.motion:设置动作事件 
    adb shell monkey -pct-motion :指定motion事件的百分比percent 
    4.5.trackball:设置轨迹球事件 
    adb shell monkey -pct-trackball :指定轨迹球事件百分比percent 
    4.6.nav:导航事件设置 
    adb shell monkey -pct-nav :指定基本导航事件百分比percent 
    4.7.majornav:设置主要导航事件 
    adb shell monkey -pct-majornav :设定主要导航事件百分比percent,兼容中间键,返回键,菜单按键 
    4.8.syskeys:设置事件 
    adb shell monkey -pct-syskeys :设定系统事件百分比percent,比如HOME,BACK,拨号及音量调节等事件。 
    4.9.appswitch:启动Activity事件 
    adb shell monkey -pct-appswitch :设定启动activity的事件百分比percent 
    4.10.anyevent:不常用事件设置 
    adb shell monkey -pct-anyevent :设定不常用事件地百分比 
    4.11.crashes :程序崩溃事件设置 
    adb shell monkey -ignore-crashes :忽略崩溃和异常事件 
    4.12.timeouts:超时事件设置 
    adb shell monkey -ignore-timeouts :忽略超时事件 
    介绍了一些常用设置后,开始基本地Monkey之旅: 
    第一步:准备测试apk,如下图是我要进行测试的APK,放置在我的电脑D盘: 

第二步:把测试设备(手机)与电脑保持连接,这个就不截图啦。 
第三步:使用adb install 命令把要测试的apk安装到手机,当然你可以直接测试已经安装在手机上的apk。 
 
第四步:使用上面的基本测试命令对安装好的monkey_test.apk进行Monkey测试。 
adb shell monkey -p com.xx.xx 10 指测试10次,截图如下,运行期间你可以看到手机上apk被操作。 
 
第五步,根据自己的需要,使用其它命令对apk进行测试: 
比如通过adb shell monkey -v -p com.xx.xx 100来简单输出测试信息,如图 
 
上面的百分比就是相应事件所占的比,还有其它诸如TOUCH事件等相关信息。 
其它的测试命令就不贴了,工作中自己想怎么测试就使用相关的命令就可以。 
网上有N多详细的参考资料,比如http://blog.csdn.net/zm2714/article/details/7977930 等。

源文地址:http://blog.csdn.net/true100/article/details/52814520?ref=myread

Android Monkey测试(转载)的更多相关文章

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

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

  2. Android Monkey测试

    Monkey测试1——Monkey的使用 原文地址: http://www.douban.com/note/257029872/ (转自豆瓣,版权属于豆瓣及豆瓣网友,如有冒犯请见谅并联系我们) Mon ...

  3. Android Monkey测试入门

    第一步:搭建环境:主要是安装和搭建java和sdk环境,说白了,对我们安卓开发来说,只要搭建好了Android开发环境,Monkey测试环境基本就是OK的了.可以参考:http://www.cnblo ...

  4. Android Monkey测试入门<1>

    第一步:搭建环境:主要是安装和搭建java和sdk环境,说白了,对我们安卓开发来说,只要搭建好了Android开发环境,Monkey测试环境基本就是OK的了.可以参考:http://www.cnblo ...

  5. android monkey测试学习

    前提是:有安卓环境,能用adb命令 一.Monkey 测试的目的? 该工具可用于测试稳定性. 开发人员结合monkey 打印的日志 和系统打印的日志,解决测试中出现的问题 二.Monkey 测试的特点 ...

  6. monkey测试===通过monkey测试检查app内存泄漏和cpu占用

    最近一直在研究monkey测试.网上资料很多,但都是一个抄一个的.原创的很少 我把检查app内存泄漏的情况梳理一下: 参考资料: Monkey测试策略:https://testerhome.com/t ...

  7. monkey测试===Android测试工具Monkey用法简介(转载)

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

  8. Monkey测试简介【转载】

    转载:https://www.xuebuyuan.com/3182523.html 一.Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸 ...

  9. Android 自动化测试——Monkey测试

    Android自带了很多方便的测试工具和方法,包括我们常用的单元测试.Robotium测试.Monkey测试.MonkeyRunner测试.senevent模拟等.这些方法对于我们编写高质量的APP十 ...

随机推荐

  1. Ubuntu换源

    转自: http://wiki.ubuntu.org.cn/index.php?title=Qref/Source&variant=zh-cn 不同的网络状况连接以下源的速度不同, 建议在添加 ...

  2. Vuforia判断当识别追踪的对象

    方法一,如果有多个识别对象,在Update中循环识别对象数组,获取TrackableBehaviour组件 foreach (var item in trackObjects) { var mTrac ...

  3. IIS7应用程序池集成和经典的区别

    IIS7应用程序池集成和经典的区别 IIS7应用程序池有集成和经典两种模式,根据微软官方的介绍, 集成模式,如果托管应用程序在采用集成模式的应用程序池中运行,服务器将使用 IIS 和 ASP.NET ...

  4. 优惠分摊算法 php版

    <?php /* * 优惠分摊,算法很多,这里是从shopnc挖出来,适合优惠条件过滤的算法,实质很简单,但是理解难度还是有一点 * * 一个订单的商品,如果不参与某种活动,需要分摊优惠,一般来 ...

  5. 【Git学习笔记】撤销修改

    工作区下的.git文件夹其实是Git的版本库,Git的版本库里存了很多东西,其中最重要的就是称为 stage 的暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向master的一个 ...

  6. 关于C#使用Dllimport 导入vc++动态库后网站部署提示 “无法加载 DLL,找不到指定模块”的解决方法。

    这次项目需要,做了一个C#写的WebService服务给外部调用,服务内部引用了算法库,本地调试已经通过,现场部署服务时各种提示找不到DLL文件. 第一.如果是包含有32位库在64位服务器系统上运行, ...

  7. Python学习笔记 for windows 三

    多重继承 继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能. 哺乳类:能跑的哺乳类,能飞的哺乳类: 鸟类:能跑的鸟类,能飞的鸟类. class Animal(object): ...

  8. 第二篇:白话tornado源码之待请求阶段

    上篇<白话tornado源码之一个脚本引发的血案>用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码. 概述 上图是torna ...

  9. ionic实现点击popup区域外部分来关闭popup

    var htmlEl = angular.element(document.querySelector('html')); htmlEl.on('click', function (event) { ...

  10. Java 实现函数回调

    在Java里没用委托(delegate)这方法,所以想要实现回调还是有些麻烦.(想了解C#如何实现?请查看:http://www.cnblogs.com/Martin_Q/p/4478494.html ...