1.Monkey 介绍

Monkey是Android中一个对App进行压力测试的命令行工具,可以向系统发送伪随机的用户事件流对正在开发的App进行压力测试(模拟用户操作App)。压力测试主要是为了提高App的稳定性、和用户留存率。Monkey功能强大,主要包含三个部分:1.Monkey 命令。2.MonkeyScript。3.Monkeyrunner。该篇文章主要介绍Monkey命令。

用 Monkey 进行App压力测试的结果有三种:

1.正常

2.Crash :程序崩溃

3.ANR:程序无响应

2.Monkey 命令

查看 monkey 使用帮助: adb shell monkey -help

1.在手机上随机操作 100 次。adb shell monkey 100

2. -p  指定要进行测试的 App 的包名,可以指定多个包名,对多个 App 进行测试。adb shell monkey -p 1000

3. -c  指定要进行测试的 App 的 category,可以指定多个 category,Monkey 将仅允许系统访问其中一个指定类别中所列的 Activity。adb shell monkey -c 1000

category 是启动 Activity 时的隐式 Intent,例如:android.intent.category.LAUNCHER,表示该 Activity 可以作为启动界面。

4. -s  设置伪随机数生成器的 seed 值。adb shell monkey -p -s 12345 1000

如果你使用相同的 seed 值重新运行 Monkey,它将会生成相同的事件序列。主要用来将程序 Bug 重现。

5. -v  输出日志信息的详细级别,共三个级别,最详细级别是三个 -v。adb shell monkey -v -v -p -s 12345 1000

6. 将log日志信息保存到指定文件。adb shell monkey -p -s 100 1000 >C:\Desktop\monkey\testlog.txt

7. --throttle  在随机事件中插入固定的延迟时间,单位:毫秒。adb shell monkey -v -p --throttle 500 1000

8. --pct-touch  设置触摸事件的百分比,即手指对屏幕进行点击抬起(down-up)的动作。adb shell monkey -v -p --pct-touch 50 1000

9. --pct-motion  设置移动事件百分比,这种事件类型是由屏幕上某处的一个down事件一系列伪随机的移动事件和一个up事件,即点击屏幕,然后直线滑动,最后抬起的事件。adb shell monkey -v -p --pct-motion 50 1000

10. --pct-trackball  设置轨迹球事件百分比,这种事件类型是一个或者多个随机移动,包含点击事件,这里可以是曲线运动。

11. --pct-nav  设置基本导航事件百分比,包括:上下左右四个方向按键。

12. --pct-majornav  设置主要导航事件百分比,这些导航事件通常会导致UI界面发生变化,导航按键包括:back键,菜单键等。

13. --pct-syskeys  设置系统按键事件百分比,包括:back键,home键,音量键,拨号键等。

14. --pct-appswitch  设置Activity 启动次数所占百分比。Monkey 会以随机间隔发起 startActivity() 调用,以最大限度地覆盖软件包中的所有 Activity。

15. --pct-anyevent  设置其他事件的百分比,包括所有其他类型的事件,例如按键、设备上的其他不太常用的按钮等。

16. --ignore-crashes  忽略操作时的崩溃异常。adb shell monkey --ignore-crashes -p 1000

Monkey 在执行操作时,如果程序出现异常,Monkey 会停止运行。会导致随机事件次数没有执行完成,设置此项,就算程序出现异常,Monkey 将继续执行随机事件,直到事件计数完成。

17. --ignore-timeouts  忽略程序执行超时(ANR)。adb shell monkey --ignore-timeouts --ignore-crashes -p 1000

18. --ignore-security-exceptions  忽略程序发生权限错误。adb shell monkey --ignore-security-exceptions -p 1000

当程序发生权限错误(例如启动一些需要特定权限的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey 将继续执行随机事件,直到事件计数完成。

19. --monitor-native-crashes  监视并报告 Android 系统原生代码中发生的崩溃。

20. --ignore-native-crashes  忽略本地代码导致的崩溃。

21. --kill-process-after-error  设置此项,程序出异常 Monkey 就会停止。而出现异常的App将保持运行状态。

22. --wait-dbg  停止正在执行的 Monkey,直到有调试器和它相连接。

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

24. --hprof  设置此项,则会在 Monkey 事件序列之前和之后立即生成分析报告。

3.参考资料

android monkey压力测试,Android-Monkey 压力测试相关推荐

  1. android服务器压力测试,Android压力测试Monkey工具

    最近在Android程序测试过程中接触到了自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner其它test t ...

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

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

  3. cpu压力测试 Android,Android App 压力测试方法(Monkey)

    一.为什么要开展压力测试 a.提高产品的稳定性:b.提高产品的留存率 二.什么时候开展压力测试 a.首轮功能测试通过后:b.下班后的夜间进行 三.7个基础知识(理论部分) 3.1 手动测试场景与自动测 ...

  4. [Android 测试] 压力稳定性测试之: Monkey 详解分析脚本

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

  5. android 回归测试,android测试:monkey使用方法

    android测试:monkey使用方法 Android Sdk给我们提供了Monkey和Monkeyrunner这两个自动化测试工具. 一.什么是Monkey Monkey是一个命令行工具,可以运行 ...

  6. android驱动测试,Android: 通过 cucumber 驱动 monkey 做稳定性测试

    主要内容 稳定性测试是什么 Monkey 介绍 自动化 Monkey 稳定性测试是什么 通过随机点击屏幕一段时间,看看 app 会不会奔溃,能不能维持正常运行. Monkey 介绍 Monkey 是一 ...

  7. Android 系统(212)---monkey实战–测试步骤、常用参数、常规monkey命令

    monkey实战–测试步骤.常用参数.常规monkey命令 [转]monkey实战–测试步骤.常用参数.常规monkey命令 ***(本文转自:https://blog.csdn.net/u01164 ...

  8. monkey测试_adb monkey压力测试检测安卓手机的5大步骤,你知道吗?

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

  9. Android开发、adb、monkey测试

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

  10. Android稳定性测试工具Monkey的使用

    综述 Monkey是一个命令行工具,它可以运行在我们的模拟器或者设备当中.它可以发送一些伪随机(pseudo-random)的用户事件流,例如点击,触摸,手势等.我们能够使用Monkey工具来对我们所 ...

最新文章

  1. 刚进入大学觉得计算机课很难,高校代码条幅迎新生,00后表示刚开学就感受到秃头压力!程序员太难了...
  2. 基于互联网云脑架构分析百度的现状与未来
  3. 网络营销——网络营销专员面对网站优化难题有经验!
  4. 【原】Ubuntu中安装 mercurial - TortoiseHG
  5. python循环变颜色_在Python中使用循环变量在matplotlib中指定颜色
  6. Robo 3T SQL
  7. python继承多重继承
  8. ubuntu11.10中配置OGRE1.8
  9. efcore mysql坑,.net core 2.1 使用ef DBfirst 生成 实体映射遇到的坑 (Pomelo.EntityFrameworkCore.MySql 篇)...
  10. Dell™ PowerEdge™ R710机架式服务器旨在成为虚拟化企业的构建块
  11. C#中 As 和强制转换的总结
  12. android NDK如何解决Please define the NDK_PROJECT_PATH variable to point to it
  13. 京东类目如何修改,批量修改京东分类教程
  14. ThinkPHP内核全行业小程序运营管理系统源码 自由DIY布局 一键生成小程序
  15. linux--服务器降频
  16. 阿里云 ACP 认证,分享下经验心得
  17. 微信扫码登录只能填一个授权回调域问题
  18. sqli-labs靶场challenges第54-75关(超详细)
  19. 表情包-Emoji符号
  20. gif动态表情包在线制作的操作技巧

热门文章

  1. 华为手机怎么强制关机_华为忘记锁屏密码怎么办?多品牌手机通用解锁密码
  2. linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm
  3. c#: 任务栏进度显示(TaskbarManager)
  4. bzoj 2653 洛谷 P2839 [国家集训队] middle
  5. 从你的全世界路过-论演员的自我修养
  6. java基础-public/private/protected的具体区别
  7. 【转】构建微服务架构的最佳实践2/3
  8. tomcat GET 编码疑惑
  9. Android下常见的内存泄露 经典
  10. 64 位 win7(2008 r2) 使用PLSQL Developer x86 32bit的解决方法