使用 Monkey Application Exerciser 在 Android 中执行压力测试

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

Monkey 是您在设备上运行的工具,用于生成随机系统级用户事件。它无需任何用户交互即可生成指定数量的事件。这通常有助于执行压力测试。该工具从命令集生成随机事件并收集崩溃或内存报告。

请注意,此工具不用于自动化测试。这仅有助于找到在正常使用应用程序期间可能不会出现的崩溃。

此工具使用 Android Device Bridge ADB 工具包。要运行此命令,您需要提供应用程序包名称和要生成的随机事件总数。以下命令显示如何启动猴子工具。


 $  adb shell monkey -p com.javatechig.myapp 5000

运行此测试时,您可以观看您的设备或模拟器。您会注意到正在生成 UI 元素上的随机事件。当应用程序崩溃时,它将停止锻炼器并在终端窗口上打印报告。以下屏幕截图描述了测试我的应用程序时的崩溃报告。

有多种方法可以通过传递不同的参数来控制 Monkey 工具的行为。让我们来看看一些重要的。

您可以通过键入以下内容来查看所有选项的完整列表:


 $  adb shell monkey -p com.javatechig.myapp 5000

在前面的命令中你一定注意到了,当Monkey启动时,它总是启动指定包的默认应用程序。然而,在某些情况下,您的应用程序可能依赖于其他一些第三方应用程序,例如设备原生相机来捕捉照片或与谷歌地图集成。对于这种情况,任何启动外部事件的事件都将默认被 Monkey 工具删除。

可以通过向 Monkey 命令提供额外的 package -p 参数来控制此行为。


 $  adb shell monkey -p com.javatechig.myapp 5000

现在让我们通过控制触发事件的类型来更智能地运行 Monkey 工具。例如,如果要确保 30% 的事件是触摸事件,则需要按如下方式指定 –pct-touch 参数。


 $  adb shell monkey -p com.javatechig.myapp 5000