Monkey是Android系统自带的一个命令行工具,用户主要是通过adb命令来启动Monkey,Monkey在运行时,会根据命令行参数的配置,生成伪随机事件流,并在Android设备上执行对应的测试事件。同时,Monkey还会对测试系统进行监测

Monkey综合示例:

例子:adb shell monkey -p com.macrovideo.v380pro --ignore-crashes --ignore-timeouts --kill-process-after-error --ignore-security-exceptions --throttle 1000 -v -v -v -s 5 100 > E:\log.txt

这条命令就是向系统发送100次随机事件,各随机事件的时间间隔为1秒钟,它的种子时5,测试过程中忽略相关的安全、

超时、崩溃等异常。

输出Monkey的命令行使用方法:

——  -v  表示反馈信息的级别,Monkey命令行中每增加一个-v参数,Monkey日志反馈信息的级别就会对应增加一个Level

——  -s  <seed>伪随机数生成器的种子值,如果用相同的种子值再次运行Monkey

——  --throttle<milliseconds>  在事件之间插入固定延迟,通过这个选项可以减缓Monkey的执行速度。

如果不指定该选项,Monkey将不会被延迟,事件将会尽可能快地被生成

——  --pct-touch<percent>  设定触摸事件的百分比

——  --pct-motion< percent > 设定滑动事件的百分比

——  --pct-pinchzoom< percent> 设定二指缩放事件的百分比

——  --pct-trackball< percent> 设定轨迹事件的百分比

——  --pct-rotation< percent > 设定屏幕旋转事件的百分比

——  --pct-nav< percent > 设定基本导航事件的百分比(现在的手机上很少有上、下、左、右按键)

——  --pct-majornav< percent > 设定主要导航事件的百分比

——  --pct-syskeys< percent > 设定系统按键事件的百分比

——  --pct-appswitch< percent> 设定启动Activity事件的百分比,启动Activity事件是指在手机上启动一个Activity的操作

——  --pct-flip< percent > 设定键盘事件的百分比

——  --pct-anyevent< percent > 设定其他类型事件的百分比

——  -p<包名>  如果用此参数指定了一个或几个包(Package,即App)

——  -c<类别名> 如果此参数指定了一个或几个类别(Category),Monkey将只允许系统

启动被这些类别中的某个类别列出的Activity

——  --dbg-no-events 设置此选项,Monkey将执行初始启动,进入一个测试Activity,不会再进一步生成事件

——  --hprof 设置此选项,将在Monkey事件执行之前和执行之后生成内存快照文件存放于手机的data/misc目录(慎用)

——  --ignore-crashes  通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行

如果设置此选项,Monkey将继续向系统发送事件,直到计数完成

——  --ignore-timeouts 通常,当应用程序发生任何超时错误(如出现“Application Not Responding”对话框)时,Monkey将停止运行。

如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成

——  --ignore-security-exceptions  通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity),Monkey将停止运行。

如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成

——  --kill-process-after-error 通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。

当设置了此选项时,将会通知系统停止发生错误的进程。

——  --momitor-native-crashes  监控并报告Android系统中本地代码的崩溃事件。如果设置了—kill-process-after-error,系统将停止运行。

——  --wait-dbg   停止执行中的Monkey,直到有调试器和它相连接。

停止Monkey的方法是:

直接杀掉手机上的Monkey进程。具体方法: 先adb shell  再ps | grep monkey   最后kill <pid>

日志异常信息查找:

Monkey执行过程中常见的错误类型主要有两类:应用程序无响应(ANR)和崩溃(Crash)。

ANR是指当Android系统监测到应用程序在5秒内没有响应输入的事件或广播在10秒内没有执行完毕时抛出无响应提示。

Crash是指当应用程序出现错误时导致程序异常停止或退出的情况。

要统计Monkey日志中错误出现的次数只要搜索关键字“ANR”和“CRASH”出现的次数即可。

monkey详解的更多相关文章

  1. android压力测试命令monkey详解

    一.Monkey 是什么?Monkey 就是SDK中附带的一个工具. 二.Monkey 测试的目的?:该工具用于进行压力测试. 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出 ...

  2. android压力测试命令monkey详解【转】

    本文转载自:http://www.jb51.net/article/48557.htm 作者: 字体:[增加 减小] 类型:转载 时间:2014-03-29我要评论 这篇文章主要介绍了android ...

  3. [Android 测试] 压力稳定性测试之: Monkey 详解分析脚本(转载)

    一.什么是稳定性测试? 通过随机点击屏幕一段时间,看看app会不会奔溃,能不能维持正常运行. 二. Money是什么? Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模 ...

  4. monkey 命令详解

    monkey命令详解   1.  $ adb shell monkey <event-count>                <event-count>是随机发送事件数 例 ...

  5. Android命令Monkey压力测试,详解

    一.Monkey 是什么?Monkey 就是SDK中附带的一个工具. 二.Monkey 测试的目的?:该工具用于进行压力测试. 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出 ...

  6. monkey 原理,环境搭建、命令详解

    一.monkey测试的相关的原理 monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常.当Monkey程序在模拟器或设备运行的时候, ...

  7. monkey命令详解《转载》

    monkey命令详解: https://blog.csdn.net/a136332462/article/details/76014412

  8. Memcache的使用和协议分析详解

    Memcache的使用和协议分析详解 作者:heiyeluren博客:http://blog.csdn.NET/heiyeshuwu时间:2006-11-12关键字:PHP Memcache Linu ...

  9. SSL/TLS 原理详解

    本文大部分整理自网络,相关文章请见文后参考. SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰.正文开始. 1. SSL/TLS概览 1 ...

随机推荐

  1. Laravel技巧集锦(16):使用DB::listen查找慢SQL

    1.AppServiceProvider.php中 \DB::listen(function ($query){ $sql = $query->sql; $bindings = $query-& ...

  2. java.io.WinNTFileSystem

    Unicode-aware FileSystem for Windows NT/2000. Since: 1.4 Author: Konstantin Kladko

  3. hive元数据

    本文介绍Hive元数据库中一些重要的表结构及用途,方便Impala.SparkSQL.Hive等组件访问元数据库的理解. 1.存储Hive版本的元数据表(VERSION) 该表比较简单,但很重要. V ...

  4. webuploader如何判断是否上传的是空文件?

    在'beforeFileQueued'事件中可以判断: // 当有文件被添加进队列的时候 uploader.on( 'beforeFileQueued', function( file ) { if( ...

  5. 二叉树的序遍历x(内含结构体与非结构体版x)

    3143 codevs 二叉树的序遍历 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个 ...

  6. 学习CUDA--硬件的简单学习

    #目录 day0:硬件的简单学习 #0:写在前面的话 新年开始,一起学习了解一下CUDA的知识,做机器学习的,或者说研究机器学习深度学习算法的人如果只会用算法还是远远不够的,最好能够把一些基本的算法动 ...

  7. 关于int main(int argc,char* argv[])详解

    平时在VS的环境下,主函数总会看到这两个参数,今天突然很想知道这两个参数的原理以及作用,因此查了下资料.真心受教了. 下面的博文是在百度空间看一位大神的,原文链接:http://hi.baidu.co ...

  8. Codeforces 963 A. Alternating Sum(快速幂,逆元)

    Codeforces 963 A. Alternating Sum 题目大意:给出一组长度为n+1且元素为1或者-1的数组S(0~n),数组每k个元素为一周期,保证n+1可以被k整除.给a和b,求对1 ...

  9. 移动平台对meta标签的定义

    一.meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name). 1.http-equiv 属性的 Content-Type 值(显示字符集的设定) 说明:设定页面 ...

  10. 【转】python 输入一个时间,获取这个时间的下一秒

    原文:https://blog.csdn.net/l_d_56/article/details/84832198 输入一个时间,获取这个时间的下一秒 PS:下面代码使用于 python 2.7 tim ...