Android App 的 Monkey 测试

Monkey 测试使用大量随机操作对 App 进行压力测试。
本文基于 openSuse + Lenovo A5500 为例,介绍如何进行 Monkey 测试。

准备

  • 首先你要有一部 Android 手机;
  • 然后你要有一台电脑,强烈推荐使用 GNU/Linux ;
  • 安装待测 App F-Droid ,它是一款开源软件,用来下载和更新开源软件。
  • 启用手机的开发者模式并连接至电脑。
  • 获取待测 App 的包名
    • adb shell pm list packages命令可获取所有已安装的 App 的包名。
    • F-Droid 的包名为org.fdroid.fdroid

执行

adb shell #在本机执行
monkey  -p org.fdroid.fdroid -v 50 #在手机 shell 中执行,对F-Droid做50次操作

要想取得好的效果,需要对 monkey 命令的参数进行细致的调整,给出一例:
monkey -p org.fdroid.fdroid --monitor-native-crashes --pct-touch 80 --pct-motion 15 --pct-nav 5 -s 900 -v --throttle 200 5000
执行后发现的一处ANR:

// NOT RESPONDING: org.fdroid.fdroid (pid 17726)
ANR in org.fdroid.fdroid (org.fdroid.fdroid/.AppDetails), time=18200186
Reason: Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago.  Wait queue length: 7.  Wait queue head age: 8622.1ms.)

更多使用方式可以使用monkey –help 了解。

补:中断测试

从本机发起的 Monkey 测试,即使命令中断,手机端还是会执行。
adb shell连入手机后ps |grep monkey查看进程号杀死即可。

问题

  1. 测试时会下滑拉出状态栏,导致关闭网络。
  2. 测试时出现手机假变砖,进入adb shell后执行reboot后恢复,测试有风险,入行需谨慎,请仅在使用公司手机时大胆尝试≖‿≖✧。

参考文献(推荐程度自上到下):

  • UI/Application Exerciser Monkey
  • adb Monkey 用法
  • 搜狗 EasyMonkey
  • 利用 adb 命令查看 apk 文件包名的一些方法
  • Android 自动化测试- Monkey 性能测试
  • Android 命令 Monkey 压力测试,详解
  • Android 初体验之 Monkey 和 MonkeyRunner
  • Android 之 monkey Test

你可能感兴趣的:(Android App 的 Monkey 测试)