Time will tell.
Monkey 是 Android SDK 提供的一个命令行工具, 可以简单,方便地运行在任何版本的 Android 模拟器和实体设备上。 Monkey 会发送伪随机的用户事件流,适合对 App 做压力测试。
1、Monkey 简介
Monkey
测试就像一只猴子,在电脑面前乱敲键盘在测试。 通过Monkey
程序模拟用户触摸屏幕、滑动Trackball
、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
Android 官方自动化测试领域这只 “猴子” 一旦启动,就会让被测的 Android 应用程序像猴子一样活蹦乱跳,到处乱跑。常用 Monkey
来对被测程序进行压力测试,检查和评估被测程序的稳定性。
Android 官方对与Monkey
的描述:
Monkey
是一个程序,运行在模拟器或设备上,并生成伪随机的用户事件流,如点击、触摸、手势,以及一些系统级事件。 你可以使用Monkey
以随机但可重复的方式对正在开发的应用程序进行压力测试。
官方文档:http://www.android-doc.com/tools/help/monkey.html
2、环境搭建
安装 Android SDK 并配置环境变量。
3、Monkey 用处
Monkey
主要用于 Android 的压力测试,自动的一个压力测试小工具, 主要目的就是为了测试 app 是否会Crash
。
4、Monkey 程序
(1) Monkey
程序由 Android 系统自带,使用 Java 诧言写成,在 Android 文件系统中的存放路径是: /system/framework/monkey.jar;
(2) Monkey.jar
程序是由一个名为 “monkey” 的Shell
脚本来启动执行,shell
脚本在 Android 文件系统中 的存放路径是:/system/bin/monkey;
(3)Monkey
命令启动方式:
可以通过 PC 机 CMD 窗口中执行:adb shell monkey {+命令参数}来进行
Monkey
测试在 PC 上 adb shell 进入 Android 系统,通过执行
monkey {+命令参数}
来进行Monkey
测试在 Android 机或者模拟器上直接执行
monkey
命令,可以在 Android 机上安装 Android 终端模拟器
5、Monkey 架构
Monkey
运行在设备或模拟器上面,可以脱离 PC 运行。普遍做法是将monkey
作为一个像待测应用发送随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃。
6、Monkey 弱点
Monkey
虽然可以根据一个指定的命令脚本发送按键消息,但其支持条件判断,也支持读取待测界面的信息来执行验证操作。
7、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
中还可以看到其执行过程报告和生成的事件。
8、Monkey 启动步骤
以夜神模拟器为例:
1、检查设备连接状态
2、从上图看出,设备未连接,连接移动设备
3、再次查看设备连接状态
4、连接成功后输入命令:adb shell
5、进入到指定目录,命令:cd /system/bin
6、输入 monkey命令看到如下提示则说明启动成功
9、强制关闭 monkey
adb shell ps 查看全部在运行的进程
查找出 com.android.commands.monkey 进程 PID
adb shell kill pid 杀掉 monkey 进程
10、monkey 命令
monkey 命令格式如下:
$ adb shell monkey [options] <event-count>
[options]
是指 monkey 可传入的参数,是可选项(如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包)
<event-count>
是指随机发送事件数。如:输入100就是执行100个伪随机事件,为必选项
测试工程师职业发展路线:
功能测试 — 接口测试 — 自动化测试 — 测试开发 — 测试架构师
内容就到这里,如果你对Python自动化软件测试感兴趣的话可以加入我们175317069扣裙一起学习。群里会有各项测试学习资源发放,更有行业深潜多年的技术人分析讲解。
作为测试工程师,不断提升自己工作能力是提高薪资待遇最重要的基础。另外也要注重学习, IT 行业是个不断发展、更新迭代相对较快的行业,技术具有明显的时代特征,所以紧跟时代技术的发展才能让自己不掉队,在职场当中具有足够的竞争力。
觉得还不错就【点赞】、【评论】、【关注】吧~
Time will tell.(时间会证明一切)