Monkey 简介

ü  Monkey 是一个命令行工具,可以运行在 Android 模拟器里或真实设备中。它可以向系统发送伪随机(pseudo-random)的用户事件流(如按键输入、触摸屏输入、手势输入等),可以对待测的目标应用或整个 Android 系统进行压力测试。因此 Monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法

ü  基本语法:adb shell monkey [options] <event-count>

如果不指定options,即类似于使用命令adb shell monkey 1000,那么将会对整个系统中安装的 package 发送事件流,换种说法就是对整个 Android 系统进行 Monkey 压力测试

如下是对指定应用(第三方应用易测app)进行 Monkey 测试的例子,发送的事件流数目为1000:

adb shell monkey -p com.alibaba.easytest 1000

1|root@generic:/ #
monkey -p com.alibaba.easytest 1000

monkey -p
com.alibaba.easytest 1000

// activityResuming(com.alibaba.easytest)

// activityResuming(com.alibaba.easytest)

// activityResuming(com.alibaba.easytest)

// activityResuming(com.alibaba.easytest)

Events injected:
1000

## Network stats:
elapsed time=40435ms (40435ms mobile, 0ms wifi, 0ms not connected)

Monkey 命令选项

ü  获取选项列表,Android 4.4版本中输入adb shell monkey,会显示选项列表如下:使用getprop获取版本号

ü  常用选项及参数说明

ü  -p 允许的包名列表,可同时指定多个包名,每个包都需要使用“-p”参数指定。包名的获取,可参考 python 脚本get_package_name.py

ü  —ignore-crashes 忽视应用 crash 报错,不指定该参数时,应用出现 crash,monkey 会自动停止发送事件,指定该参数后,monkey 会在 crash 后也一直发送事件,知道所有事件发送完成

ü  —ignore-timeouts 忽视超时导致的错误,即ANR的错误

ü  —ignore-security-exceptions 忽视权限方面的错误

ü  —monitor-native-crashes 监控由 C/C++ 代码引起的
crash

ü  —ignore-native-crashes 忽视由 C/C++ 代码引起的
crash

ü  —kill-process-after-error 当出现错误后杀掉应用的进程

ü  —hprof 指定该选项后,monkey会在发送事件完成后生成性能报告,报告一般存放于/data/misc目录下,对报告的分析,需要使用Traceview

ü  —pct-touch 设定 touch 事件比例

ü  —pct-motion 设定手势事件比例,例如滑动事件

ü  —pct-trackball 设定跟踪球事件的比例

ü  —pct-syskeys 设定系统按键事件的比例,如 Home、Back、音量+/-等

ü  —pct-nav 设定”基本”导航事件的比例

ü  —pct-majornav 设定”主要”导航事件比例

ü  —pct-appswitch 设定启动 Activity 的事件比例

ü  —pct-pinchzoom 设定缩放事件比例

ü  —pct-anyevent 设定其他事件比例

ü  -s 设定种子数,方便用于重现 bug

ü  -v 设定输出信息的详细级别,1个
-v 表示级别为1,2个 -v 表示级别为2

ü  —throttle 设定事件之间的延时,单位为毫秒

ü  COUNT 事件数目

结束Monkey进程

执行
Monkey 的过程中如果想中途停止 Monkey 程序的运行,需要将 Monkey 的进程杀掉。

ü  windows 下使用findstr,linux/mac 下用grep

ü  执行adb shell ps |
findstr monkey

ü  获取到 monkey 进程的 pid 之后运行adb shell kill 进程ID

Android Monkey的用法(一)的更多相关文章

  1. Android monkey介绍

    Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...

  2. Android Monkey Test

    Monkey测试是Android自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常.当Monkey程序在模拟器或设备运行的时候, ...

  3. 【转】Android Monkey 命令行可用的全部选项

    常规 事件 约束限制 调试 原文参见:http://www.douban.com/note/257030384/ 常规 –help 列出简单的用法. -v 命令行的每一个 -v 将增加反馈信息的级别. ...

  4. 【Android学习】android:layout_weight的用法实例

    对于android:layout_weight的用法,用下面的例子来说明: <LinearLayout xmlns:android="http://schemas.android.co ...

  5. Android之Adapter用法总结-(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

  6. Android之Adapter用法总结(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

  7. Android webservice的用法详细讲解

    Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...

  8. 如何停止Android Monkey脚本

    如何停止Android Monkey脚本 最近用monkey来包apk的性能测试,发现一旦monkey跑起来以后,即使将数据线和PC断开,monkey脚本还是会继续运行下去.结果找到了一个办法去停止它 ...

  9. Android之Adapter用法总结

    http://blog.csdn.net/fznpcy/article/details/8658155 Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器 ...

随机推荐

  1. 腾讯 Techo 开发者大会首发来袭!云原生中间件技术实践等你来!

    腾讯 Techo 开发者大会是由腾讯云发起的面向全球开发者和技术爱好者的年度盛会,2019 年 11 月 6 日 - 7 日将在北京嘉里大酒店首次召开. 作为一个专注于前沿技术研讨的非商业大会,Tec ...

  2. 如何在Oracle 12C中添加多个分区 (Doc ID 1482456.1)

    How to Add Multiple Partitions in Oracle 12C (Doc ID 1482456.1) APPLIES TO: Oracle Database - Enterp ...

  3. 初级模拟电路:3-11 BJT实现电流源

    回到目录 1. 恒流源 (1)简易恒流源 用BJT晶体管可以构造一个简易的恒流源,实现电路如下: 图3-11.01 前面我们在射极放大电路的分压偏置时讲过,分压偏置具有非常好的稳定性,几乎不受晶体管的 ...

  4. Linux系统学习 二十二、SAMBA服务—Samba基本使用—share权限访问、客户端的使用

    share权限访问 配置文件修改 [global]全局设置 workgroup=MYGROUP server string=Samba Server Lamp log file=/var/log/sa ...

  5. [洛谷P1169][题解][ZJOI2007]午餐

    这是题目吗? 显然的DP,讲几个重要的地方 1.贪心:让吃饭时间长的先排队(证明从略) 2.状态: f[i][j][k]代表前i个人,一号时间j,二号时间k显然MLE 所以压缩成f[i][j]代表前i ...

  6. combination sum && combination sum II

    1.Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), f ...

  7. fiddler抓包的一些基本知识整理

    fiddler常用命令:selelct xx: 高亮显示所有的text,js,image等响应类型?xxx:匹配所有url.protocol.host中包含xxx的会话=404:选择响应状态码为404 ...

  8. java基础(3):变量、运算符

    1. 变量 1.1 变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为重要的知识点! 什么是变量?变量是一个内存中的小盒子(小容器), ...

  9. GO-结构体(类似python中的类)

    一.结构体有名属性 package main import "fmt" func main(){ type Sb struct { name string //属性名,数据类型 a ...

  10. Java生鲜电商平台-订单模块状态机架构设计

    Java生鲜电商平台-订单模块状态机架构设计 说明:在Java生鲜电商平台中订单的状态流转业务        我们知道 一个订单会有很多种状态:临时单.已下单.待支付.待收货.待评价.已完成,退货中等 ...