为提高产品的稳定性和留存率,通常需要对app进行压力测试。为避免进行压力测试带来的影响,压力测试一般选择在夜间进行。
monkey通过模拟事件流从而实现自动化测试,避免人为的实现自动重复大量繁琐测试工作。
Monkey测试前的环境搭建:
- Android SDK 环境搭建及环境变量的配置
- Python 环境搭建及环境变量的配置
测试步骤:
安装apk → 发送压力测试指令→析取Crash的Exception日志
adb shell monkey [事件次数]
eg:adb shell monkey 1000
(发送1000条测试指令,注:如果测试中途出现异常,会终止测试。如果需要继续进行,需要使用--ignore参数。)
常用命令介绍:
adb devices 查看与电脑连接的手机设备
adb logcat | grep START 查看系统中安装的应用包名,获取测试app的packageName
adb shell monkey -p [packagename] 1000 给指定apk进行压力测试
Monkey高级参数的应用
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pct-permission PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[--sort-app-list]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
[--permission-target-system]
[--delay-appswitch MILLISEC]
[--launch-app-after-launcher
[--launch-app-after-app MILLISEC PACKAGE_NAME CLASS_NAME]