简介
今天由宏哥给小伙伴们来介绍猴哥的混血弟弟 = Monkey.Monkey 是 Android SDK 提供的一个命令行工具, 可以简单, 方便地运行在任何版本的 Android 模拟器和实体设备上. Monkey 会发送伪随机的用户事件流, 适合对 App 做压力测试.
中文名: 猴子
英文名: Monkey
出身年月: 不详
职业: 自动化测试工具
常住地址: 花果山水帘洞 1 号
1,Monkey 简介
在 Android 的官方自动化测试领域有一只非常著名的 "猴子" 叫 Monkey, 这只 "猴子" 一旦启动, 就会让被测的 Android 应用程序像猴子一样活蹦乱跳, 到处乱跑. 人们常用这只 "猴子" 来对被测程序进行压力测试, 检查和评估被测程序的稳定性.
Android 官方对这只 "猴子" 的描述是这样的:
The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.
Monkey 是一个程序, 运行在您的模拟器或设备上, 并生成伪随机的用户事件流, 如点击, 触摸或手势, 以及一些系统级事件. 您可以使用 Monkey 以随机但可重复的方式对您正在开发的应用程序进行压力测试.
monkey 官方文档: http://www.android-doc.com/tools/help/monkey.html
2, 环境搭建
安装 Android SDK 并配置环境变量
3, 什么是 Monkey
顾名思义, Monkey 就是猴子, Monkey 测试, 就像一只猴子, 在电脑面前, 乱敲键盘在测试. 猴子什么都不懂, 只知道乱敲
通过 Monkey 程序模拟用户触摸屏幕, 滑动 Trackball, 按键等操作来对设备上的程序进行压力测试, 检测程序多久的时间会发生异常
4,Monkey 用来做什么
Monkey 主要用于 Android 的压力测试 自动的一个压力测试小工具, 主要目的就是为了测试 App 是否会 Crash.
5,Monkey 程序介绍
(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 终端模拟器
6,Monkey 架构
Monkey 运行在设备或模拟器上面, 可以脱离 PC 运行(普遍做法是将 monkey 作为一个像待测应用发送 随机按键消息的测试工具. 验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)
7,Monkey 弱点
Monkey 虽然可以根据一个指定的命令脚本发送按键消息, 但其丌支持条件判断, 也丌支持读取待测界 面的信息来执行验证操作.
8,Moneky 路径
Monkey 程序是 Android 系统自带的, 其启动脚本是位于 Android 系统的 / system/bin 目录的 Monkey 文件, 其 jar 包是位于 Android 系统的 / system/framework 目录的 Monkey.jar 文件. 用户主要是通过 adb 命令来启动 Monkey 的, Monkey 在运行时, 会根据命令行参数的配置, 生成伪随机的事件流, 并在 Android 设备上执行对应的测试事件. 同时, Monkey 还会对测试系统进行监测, 当出现以下三种情况时会进行特殊处理:
如限定了 Monkey 运行在特定包上, 当监测到试图转到其他包的操作, 将对其进行阻止.
如应用程序崩溃或接收到任何失控异常, Monkey 将记录对应的错误日志, 并根据命令行参数判断是停止运行还是继续运行.
如果应用程序发生了程序无响应 (application not responding) 的错误, Monkey 将记录对应的错误日志, 并根据命令行参数判断是停止运行还是继续运行.
按照选定的不同级别的反馈信息, 在 Monkey 中还可以看到其执行过程报告和生成的事件.
9,Monkey 启动步骤
1, 检查设备连接状态(以夜神模拟器为例)
2, 从上图看出, 设备未连接, 连接移动设备
3, 再次查看设备连接状态
4, 连接成功后输入命令: adb shell
5, 进入到指定目录, 命令: cd /system/bin
6, 输入 monkey 命令看到如下提示则说明启动成功.
10, 强制关闭 monkey
1,adb shell ps 查看全部在运行的进程
2, 查找出 com.Android.commands.monkey 进程 PID
3,adb shell kill pid 杀掉 monkey 进程
11,monkey 命令
monkey 命令格式如下:
$ adb shell monkey [options] <event-count>
[options] 是指 monkey 可传入的参数, 是可选项(如果不指定 options,Monkey 将以无反馈模式启动, 并把事件任意发送到安装在目标环境中的全部包)
<event-count> 是指随机发送事件数. 如: 输入 100 就是执行 100 个伪随机事件, 为必选项.
12, 小结
好了, Monkey 简介暂且到这里, 下一篇计划介绍分享 Monkey 事件!!!
您的肯定就是我进步的动力. 如果你感觉还不错, 就请鼓励一下吧! 记得点波 推荐 哦!!!
个人公众号
微信群
来源: https://www.cnblogs.com/du-hong/p/11169602.html