目录

一、Monkey介绍

二、Monkey测试目的

三、Monkey测试的特点

四、Monkey参数详解

1、-p <测试的包名列表>

2、-v 显示日志详细程度

3、-s 伪随机数生成器的种子值

4、--throttle < 毫秒>

5、 --ignore-crashes 忽略崩溃

6、 --ignore-timeouts 忽略超时

7、--monitor-native-crashes 监视本地崩溃代码

8、 --ignore-security-exceptions 忽略安全异常

9、--kill-process-after-error 发生错误停止运行并保持当前状态

10、--pct-事件类别+事件类别百分比

五、Monkey实例


一、Monkey介绍

Monkey是Android中的一个命令行工具,可在模拟器或实际设备中运行。通过向系统发送伪随机的用户事件流(例如按键、触摸屏、手势操作等),来实现对开发中的应用程序进行压力测试,即进行稳定性测试。

Monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。简而言之,就是利用工具模拟人的操作,如触摸屏幕、滑动Trackball、 按键等,对手机APP进行大量的随机的点按操作。

二、Monkey测试目的

主要目的就是为了测试APP是否会Crash(崩溃)

三、Monkey测试的特点

Monkey所产生的事件都是随机的,不会带有主观性
1、测试的对象仅为应用程序包,有一定的局限性
2、Monky测试使用的事件数据流是随机的,不能进行自定义
3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置

四、Monkey参数详解

adb的操作命令格式一般为:adb shell monkey +命令参数

1、-p <测试的包名列表>

用于约束限制,用此参数指定一个或多个包。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

1)不指定包:adb shell monkey 50

2)指定一个包执行50次:adb shell monkey -p 包名 50

3)指定多个包执行50次:adb shell monkey -p 包名1 -p 包名2 50

2、-v 显示日志详细程度

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

1)Level 0 : adb shell monkey -p 包名 -v 100        //默认级别,仅提供启动提示、测试完成和最终结果等少量信息

2)Level 1 : adb shell monkey -p 包名 -v -v 100        //提供较为详细的日志,包括每个发送到Activity的事件信息

3)Level 2 : adb shell monkey -p 包名 -v -v -v 100        //最详细的日志,包括了测试中选中/未选中的Activity信息

3、-s 伪随机数生成器的种子值

用于指定伪随机数生成器的seed值。如果使用相同的种子值重新运行Monkey,它将生成相同的事件序列,[-s 500 (事件序列) 1000(事件数)],例如:

1)test1:adb shell monkey -p com.youdao.dict -s 10 -v 100

2)test2:adb shell monkey -p com.youdao.dict -s 10 -v 100

4、--throttle < 毫秒>

在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被完成。

例如:adb shell monkey -p com.youdao.dict --throttle 200 50        //表示执行50个用户事件数,事件间隔为200毫秒

5、--ignore-crashes 忽略崩溃

当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,即使应用程序崩溃,Monkey将继续向系统发送事件,直到事件计数完成。

例如:adb shell monkey -p com.youdao.dict --ignore-crashes 100        //测试过程中即使程序崩溃,Monkey依然会继续发送事件,直到事件数目达到100为止

6、 --ignore-timeouts 忽略超时

当应用程序发生任何超时错误时(如“Application Not Responding”),Monkey将停止运行。如果设置此选项,即使应用程序发生ANR错误,Monkey将继续向系统发送事件,直到计数完成。

例如:adb shell monkey -p com.youdao.dict --ignore-timeouts 100        //测试过程中即使程序发生ANR错误,Monkey依然会继续发送事件,直到事件数目达到100为止

7、--monitor-native-crashes 监视本地崩溃代码

监视并报告Android系统中本地代码的崩溃事件。

例如:adb shell monkey -p com.youdao.dict --monitor-native-crashes 100        //原理同上

8、 --ignore-security-exceptions 忽略安全异常

当应用程序发生许可错误时(如证书许可,网络许可等),Monkey将停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

例如:adb shell monkey -p com.youdao.dict --ignore-security-exceptions 100        //原理同上

9、--kill-process-after-error 发生错误停止运行并保持当前状态

当应用程序发生错误时,停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

例如:adb shell monkey -p com.youdao.dict --kill-process-after-error 100        //同上

10、--pct-事件类别+事件类别百分比

用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

操作事件简介

Monkey所执行的随机事件流中包含11大事件,分别是触摸(touch)、手势(motion)、缩放(pinchzoom)、轨迹(trackball)、屏幕旋转(rotation)、基本导航(nav)、主要导航(mojornav)、系统按键(syskeys)、Activity启动(appswitch)、键盘翻转(flip)、其他事件(anyevent)。Monkey通过这11大事件来模拟用户的常规操作,对手机App进行稳定性测试。

1)--pct-touch  触摸事件

2)--pct-motion  手势事件

3)–pct-pinchzoom  二指缩放事件

4)–pct-trackball  轨迹事件

5)–pct-rotation  屏幕旋转事件

6)–pct-nav  基本导航事件

7)–pct-majornav  主要导航事件

8)–pct-syskeys  系统按键事件

9)–pct-appswitch  启动activity事件

10)–pct-flip  键盘翻转事件

11)–pct-anyevent  其他类型事件

五、Monkey实例

实例:adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes --throttle 100 -v -v 10000 >D:\adb\monkey_log.txt        //将跑完monkey后写入到电脑D盘的指定目录下并生成一个文件

查看生成的文件

adb命令之monkey使用相关推荐

  1. app测试(手机自动化测试)----(含adb命令,monkey命令)

    [持续更新中] 1.环境搭建: (1). 安装 jdk1.8 [测试 java -version] [appium 运行需要] (2). 安装 sdk [appium 运行需要 ][不要写中文路径,不 ...

  2. Android测试中常用的adb命令、monkey命令

    Android调试桥,一种多功能命令行工具,与设备进行通信 查看adb版本:adb version 关闭和启动adb服务:adb kill-server // adb start-server 安装a ...

  3. APP测试常用的adb命令以及Monkey测试汇总篇

    1.显示系统中全部设备: adb devices 这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 adb devices 2.开启或关闭ADB服务 开启服务: ...

  4. ADB 命令结合 monkey 的简单使用,超详细

    一:ADB简介 1,什么是adb: ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序.其中客户端是用来操作的电脑,服务端是 Android 设备. ...

  5. [整理]ADB命令行学习笔记

    global driver # 元素定位 driver.find_element_by_id("id") # id定位 driver.find_element_by_name(&q ...

  6. 使用adb命令控制Android

    adb shell input text hello //把hello这个内容传到有焦点的EditText之类的控件上 adb shell input keyevent 3 //相当于按下home键, ...

  7. adb 命令小集(转)

    ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootl ...

  8. (转)Android 常用 adb 命令总结

    转载地址:https://www.cnblogs.com/bravesnail/articles/5850335.html 针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常 ...

  9. Android系统(109)---ADB命令

    Android ADB命令 adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经够费劲了,过段时间再次使用时压根记不住呀.本次的就 ...

最新文章

  1. 全球首个突破200种语言互译的翻译引擎,百度翻译打破世界沟通壁垒
  2. TCP 客户端程序开发
  3. std::bind技术内幕
  4. windbg调试命令
  5. win10 2004 最新版图文安装流程
  6. 罗杰斯:做你喜欢的工作,你会变成个有钱人
  7. [书籍分享]0-006.App营销解密:移动互联网时代的营销革命
  8. 2018年网络工程师考试提纲
  9. 小米人APK改之理(APK IDE)
  10. 怎样从零开始训练一个AI车手?
  11. 分治算法 循环比赛日程表
  12. 固态硬盘与机械硬盘是否应该一起使用
  13. cocos creator麻将教程系列(八)—— 达达麻将语音聊天源码分析
  14. 艰酸的试用期转正申请报告
  15. java基本类型与包装类型
  16. 基于bytom 智能合约_基于HTTP的合约测试@ Gamesys
  17. 诺禾-诺禾科技-clip-path应用–制作地图
  18. pdm转excel(基于PowerDesigner软件)
  19. Use Case的学习
  20. yum如何下载yum包

热门文章

  1. 瞬间让SignalR 实现在线聊天室~
  2. 刚构桥的优缺点_刚构桥特点
  3. 【图像识别】基于 BP神经网络路面裂缝识别系统Matlab代码
  4. 5个有用的 CSS 布局生成器
  5. 前端为什么这么麻烦之浏览器
  6. 【HTML——奇幻彩色粒子】(效果+代码)
  7. Pandas的read_excel函数学习
  8. PHP性能分析工具xhprof 参数简介详解
  9. 传统软件架构与微服务架构
  10. mac 升级为ventura 系统pod 报错