一、什么是Monkey?
我们来看一段官方介绍:
UI/Application Exerciser Monkey:Monkey 是一个在模拟器或设备上运行的程序,可生成伪随机用户事件(例如点击、轻触或手势)流以及很多系统级事件。您可以使用 Monkey 以随机且可重复的方式对正在开发的应用进行压力测试。
Monkey 是一个命令行工具,可以在任何模拟器实例或设备上运行。它会将伪随机用户事件流发送到系统中,从而对应用软件进行压力测试。
Monkey 包含许多选项,主要分为以下四个类别:
- 基本配置选项,例如设置要尝试的事件数。
- 操作限制条件,例如将测试对象限制为单个软件包。
- 事件类型和频率。
- 调试选项。
Monkey 在运行时会生成事件并将其发送到系统。它还会监视被测系统并查找三种特殊情况:
- 如果您已将 Monkey 限制为在一个或多个特定软件包中运行,它会监视并阻止转到任何其他软件包的尝试。
- 如果应用崩溃或收到任何未处理的异常,Monkey 会停止并报告错误。
- 如果应用生成“应用无响应”错误,Monkey 会停止并报告错误。
二、Monkey的安装和配置
Windows环境下下载adb工具然后配置环境变量即可;
Mac下可参考之前写的文章进行adb的安装:https://blog.csdn.net/xianyu9264/article/details/106349118
三、Monkey的基本语法
启动方式:shell。基本语法如下:
adb shell monkey [options] <event-count>
如果未指定任何选项,Monkey 将以静默(非详细)模式启动,并将事件发送到目标上。下面是一个更典型的命令行,它会启动您的应用并向其发送 500 个伪随机事件:
第一步:先获取当前正在运行的app的包名(如果是你自己的app或知道要测试的app包名,就不用进行这一步了)
adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'
这里可以知道QQ浏览器的包名是:com.tencent.mtt
adb shell monkey -p your.package.name -v 500
当执行了上面的命令后,我们就可以看到monkey已经启动并随机测试点击QQ浏览器了
其中,我们可以看到
args: [-p, com.tencent.mtt, -v, 500]
arg: "-p" // 包名参数
ar