一、为什么?在公司,第一次产品上线,经理会打出一个mokey包在最后一轮的测试中进行测试(俗称压力测试:就是假象一个哥们为了黑你程序,拼命的乱点你的程序,看你程序是否承受的了,现在为了提前测试,我们就交给android系统自动进行。假象一个猴子不停的单击)

二、是什么?Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压测试,检测程序多久的时间会发生异常。

三、怎么用?

Monkey程序介绍

1Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;

2Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;

3这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。

(1)

要获取Monkey命令自带的简单帮助,在CMD中执行命令:

adb shell monkey –help

(2)

参数:  -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%;

APK的Mokey测试相关推荐

  1. 自动化压力测试:Mokey测试参数:

    在APP提交到应用市场审核时常常有自动化测试,也可以自己设置参数自我检查. Monkey测试随机性比较高,故仅作为参考,具体测试工作交由测试人员 简单案例: adb shell monkey -v 5 ...

  2. Android 白盒测试之单元测试(junit),黑盒测试之mokey测试

    导言: 做安卓也有几个年头,对于小项目基本都不去单元测试和稳定性测试等,都是在出现异常后通过debug处理或log打印即可解决,当然对于大的项目,由于运行时效问题,加快开发效率,一些测试方法必须要做, ...

  3. android导出apk文件_Android测试工具入门介绍(三)

    介绍一款牛逼的测试框架Drozer,一款可以检测Android一些公共漏洞的工具(可能远不止这些.还可以继续挖掘),还可以生成shellcode,进行安卓设备的远程exploit. 附下载地址:htt ...

  4. 使用Monkey对apk做稳定性测试

    认识Monkey 官方文档:https://developer.android.com/studio/test/monkey.html 什么是Monkey? Monkey是Android中的一个命令行 ...

  5. Android测试能不能用monk,使用Monkey对apk做稳定性测试

    认识Monkey 官方文档:http://www.android-doc.com/tools/help/monkey.html 什么是Monkey? Monkey是Android中的一个命令行工具,可 ...

  6. 【 uniapp 】打包Android的apk(原生APP-云打包),及发布测试

    前言: 跨端(小程序.Android.IOS)项目开发好了,我们如何去利用 uniapp 的云打包去打包 apk 文件,然后上传测试呢?今天我们一起来学习一下,一步一步如何实现! 目录 一. 打包 A ...

  7. android 获取monkey日志_Android压力测试:monkey压力测试实战

    主要分享的主题是 Android App 专项测试, 通过 monkey 进行压力测试. 一.测试步骤 1.安装ADB 2.连接被测手机和电脑 3.打开CMD命令行 4.输入monkey命令 adb ...

  8. 移动端测试介绍和练习

    移动端基础介绍 对于手机端测试,按照平台来分,分为Android和IOS两大主流系统, ios和Android,二者有区别 1.两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制 ...

  9. Android开发、adb、monkey测试

    一. 手机测试概念 传统手机测试 VS 手机应用软件测试 传统手机测试:指测试手机本身比如抗压,抗摔,抗疲劳,抗低温高温等.也包括手机本身功能.性能等测试. 手机应用软件测试 C/S Client/S ...

最新文章

  1. (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点
  2. 一个简单的blog系统(十一) 增加文章检索功能
  3. python数据整理_python数据类型整理
  4. vue-cli4.x 中 配置允许跨域请求
  5. 今日恐慌与贪婪指数为70 贪婪程度有所缓解
  6. AWS re:Invent大会回顾
  7. 女同志50岁退休可以早领养老金,55岁退休拿的养老金比较高,哪个更划算?
  8. 改变程序设计、图灵奖得主、美国第一位计算机科学女博士,程序媛进击史
  9. 伽罗华域(Galois Field,GF,有限域)乘法运算
  10. 警惕针对SQL的爆破攻击,入侵者会完全控制服务器,挖矿只是小目标
  11. Android编程简介
  12. 分布式计算、云计算与大数据第十章
  13. Django Rest framework (看完直接上手用)
  14. 【.NET Core】 hangfire
  15. 关于PS课程中色彩调整部分的学习总结
  16. jdbc之oracle
  17. 苟日新,日日新,又日新
  18. 大厂出品的免费精品Markdown文档编辑器推荐,支持无限树状目录结构
  19. 全国3000多名医护人员感染新冠,医疗机器人与智能技术提供解决方案
  20. 汉语字典API接口,免费好用

热门文章

  1. 数据库 设计中的英文术语
  2. IIS7.5安全配置研究
  3. NIS认证管理域中的用户
  4. CSS学习 -- 3种命名方式及规则
  5. 看电影学英语:不速之客[The Vistor] [二]
  6. python 类 对象 方法 应用_Python 定制类与其对象的创建和应用
  7. url解码java_JAVA对URL的解码【转】
  8. rpa打开浏览器_rpa.ie
  9. axure树形表格_Axure教程:可增删改的树型结构
  10. PaddleClas模型训练/评估:数据准备