Monkey 是什么?

Android SDK自带的压力测试工具,也是一个命令行工具。它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用程序进行压力测试。

(1) Monkey程序由Android系统自带,使用Java诧言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;   
(2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;  
(3)Monkey 命令启动方式:    
          a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试

     b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试

c )  在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器

特点:

测试事件和数据都是随机的,不能自定义。

Monkey 命令详解

1、标准的monkey 命令,打开运行sdk目录下的 adb shell

monkey [option] <eventcount> 
例如:
adb shell monkey -v 500 //产生500 随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。

2、基础参数

-p <packageName ...>

用此参数指定一个或者多个包名,指定包之后,monkey将只启动对应的应用,如果未指定包名,系统将允许monkey启动所有应用。

adb shell monkey -p com.android.example 1000  // 指定应用 com.android.example 进行1000次模拟事件测试

adb shell monkey -p com.android.example -p com.android.example2 1000   //指定多个应用

-v  

用于指定测试反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应一下参数

adb shell monkey -p com.android.example -v 100 //仅提供启动、测试完成和最终结果等少量日志。

adb shell monkey -p com.android.example -v -v 100 //提供较详细的日志,包括每个发送到Activity 的事件信息

adb shell monkey -p com.android.example -v -v -v 100 // 包括各个activity的信息

-s(随机数种子)

用于指定伪随机数生成器的seed 值,如果seed 相同,则两次Monkey测试所产生的事件序列也相同的,示例:

adb shell monkey -p com.android.example -s 10

--throttle <毫秒>

用于指定用户操作事件延迟时间。默认不设置,则尽可能的执行。

adb shell monkey -p com.android.example --throttle 3000 10

-c <main-category>

如果以这种方式指定一个或多个类别,则Monkey将  仅  允许系统访问使用指定类别之一列出的活动。如果您未指定任何类别,Monkey将选择使用Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY类别列出的活动。要指定多个类别,请多次使用-c选项 - 每个类别一个-c选项。

3、事件操作参数

--pct-touch <percent>

adb shell monkey -p com.android.example --pct-touch 50  1000 >d:\monkeyLog.txt

用于调整触摸事件占的百分比。

--pct-motion <percent>

调整运动事件的百分比 。

--pct trackball <percent> 

调整轨迹球事件占的百分比

--pct-nav <percent>

调整“基本”导航事件的百分比。(导航事件由上/下/左/右组成,作为来自方向输入设备的输入。)

--pct-majornav <percent> 

调整“主要”导航事件的百分比。(这些导航事件通常会导致UI中的操作,例如5向键盘中的中心按钮,后退键或菜单键。)

--pct-appswitch <percent> 

调整活动启动的百分比。在随机的时间间隔内,Monkey将发出一个startActivity()调用,作为最大化包中所有活动的覆盖范围的方法。

--pct-anyevent <percent>

调整其他类型事件的百分比。这是所有其他类型事件的全部功能,例如按键,设备上其他较少使用的按钮等等。

4、调试参数

--hprof 

如果设置,此选项将在Monkey事件序列之前和之后立即生成分析报告。这将在data / misc中生成大(~5Mb)文件,因此请小心使用

--ignore-crashes

通常,当应用程序崩溃或遇到任何类型的未处理异常时,Monkey将停止。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。

--ignore-timeouts

通常,当应用程序遇到任何类型的超时错误(例如“应用程序无响应”对话框)时,Monkey将停止。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。

--ignore-security-exceptions

通常,当应用程序遇到任何类型的权限错误时,Monkey将停止,例如,如果它尝试启动需要某些权限的活动。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。

--kill-process-after-error

通常,当Monkey因错误而停止时,失败的应用程序将保持运行状态。设置此选项后,它将通知系统停止发生错误的进程。注意,在正常(成功)完成的情况下,启动的进程不会停止,并且设备在最终事件之后只是处于最后状态。

--monitor-native-crashes

观看和报告Android系统本机代码中发生的崩溃。如果设置了--kill-process-after-error,系统将停止

Android Monkey使用的更多相关文章

  1. Android monkey介绍

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

  2. 如何停止Android Monkey脚本

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

  3. Android Monkey压力测试环境搭建及使用

    Android Monkey压力测试学习笔记 步骤:下载SDK -> 解压进入SDK Manager下载系统 -> 配置环境变量 -> 创建虚拟设备或连接真机 -> 进入命令模 ...

  4. [原创]Android Monkey 在线日志分析工具开发

    [原创]Android Monkey 在线日志分析工具开发 在移动App测试过程中,Monkey测试是我们发现潜在问题的一种非常有效手段,但是Android原生的Monkey有其天然的不足,数据不能有 ...

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

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

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

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

  7. Android Monkey压力测试

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试. 1为什 ...

  8. Android Monkey测试(转载)

    Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上.它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试. 官方介绍 :https://developer.a ...

  9. Android Monkey 压力测试 介绍

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试 阅读目录 ...

  10. Android Monkey测试

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

随机推荐

  1. Java从入门到精通系统书籍,吐血整理的,只要1元

    思诚为修身之本,而明善又为思诚之本 我会在支付宝联系你 付完款后在支付宝账单详情页 点击联系收款方.我会回复您下载链接.

  2. CSS 让div,span等块级、非快级元素排列在同一行

    让div,span等块级.非快级元素排列在同一行 by:授客 QQ:1033553122 例子:让两个div排列在同一行 给div添加float样式 <!DOCTYPE html> < ...

  3. 使用NodeJS模块-第三方提供的模块(什么是npm)

    第三方开发者提供的模块 第三方模块是由NodeJS社区或第三方个人开发的功能模块,这些功能模块以软件包的形式存在.被发布在npmjs注册表中.npmjs是一个注册中心,所有软件包的信息都会被记录到该注 ...

  4. cgo在mac上编译

    用了cgo mac上编译不过的可以试试下面的方法 ../../pkg/mod/github.com/mattn/go-sqlite3@v1.:: fatal error: 'stdlib.h' fil ...

  5. Centos7.6 Apache 虚拟机禁止访问IP,允许访问多域名多个虚拟目录设置

    存放配置文件路径 /etc/httpd/conf.d自定义命名,配置文件后缀格式确保 *.conf注:这是两个配置文件,也是两种方法. # 一个WEB目录# 禁止以IP地址形式访问<Virtua ...

  6. C#开发BIMFACE系列15 服务端API之获取模型的View token

    系列目录     [已更新最新开发文章,点击查看详细] 在<C#开发BIMFACE系列3 服务端API之获取应用访问凭证AccessToken>中详细介绍了应用程序访问API的令牌凭证.我 ...

  7. JS模仿腾讯图片新闻

    仿照腾讯图片新闻的幻灯,功能并不完全一样.最开始打算做这个的时候,突然觉得好像做不来.想想如果一步一步,一个功能一个功能的做应该能搞定. 我做这个例子的思路是这样的: 先把需要的html和css代码写 ...

  8. Regex quick reference

    近段时间,接触正则较多,常规法则如下,网摘内容,方便查阅.

  9. Long Jumps CodeForces - 479D

    E - Long Jumps CodeForces - 479D Valery is a PE teacher at a school in Berland. Soon the students ar ...

  10. Pull Request找原作者做review

    最近对代码库进行了一次全局替换,改了150个左右的文件,发了PR后需要找原作者确认一下,于是写了个工具做git blame,地址在这里 写完发现一个问题,如果只是新增一个函数,没有调用,是应该不用找原 ...