软件设计 2017-05-16
[blockquote]
[/blockquote]
Monkey 是一个 Android 自动化测试小工具。主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash.
顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲。通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
Monkey 程序是由 Android 系统自带,使用 Java 语言写成。在Android文件系统中的存放路径是: /system/framework/monkey.jar;
Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;
Monkey 启动方式:在 cmd 命令提示符里面输入命令行来启动 monkey 测试。
Monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)
[blockquote]
adb shell monkey 1000
[/blockquote]
QQ 的包名为: com.tencent.mobileqq
[blockquote]
adb shell monkey -p com.tencent.mobileqq 1000
[/blockquote]
随机操作 手机 QQ 1000 次
微信的包名为:com.tencent.mm
[blockquote]
adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000
[/blockquote]
随机操作 手机 QQ 和 微信 1000 次
命令行的每一个-v将增加反馈信息的级别。
[blockquote]
adb shell monkey -p com.tencent.mobileqq -v -v -v 100
[/blockquote]
如果用相同的seed值再次运行monkey,将生成相同的事件序列。
[blockquote]
adb shell monkey -s 12345 -v 10
[/blockquote]
通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
[blockquote]
adb shell monkey --ignore-crashes -v 1000
[/blockquote]
通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
[blockquote]
adb shell monkey --ignore-timeouts -v 1000
[/blockquote]
通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
[blockquote]
adb shell monkey --ignore-security-exceptions -v 1000
[/blockquote]
在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被执行。
[blockquote]
adb shell monkey --throttle 500 -v 500
[/blockquote]
随机执行 500 个事件,每个事件之间延迟 500 毫秒被执行。
[blockquote]
adb shell monkey -help
[/blockquote]
结果:
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...] [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...] [--ignore-crashes] [--ignore-timeouts] [--ignore-security-exceptions] [--monitor-native-crashes] [--ignore-native-crashes] [--kill-process-after-error] [--hprof] [--pct-touch PERCENT] [--pct-motion PERCENT] [--pct-trackball PERCENT] [--pct-syskeys PERCENT] [--pct-nav PERCENT] [--pct-majornav PERCENT] [--pct-appswitch PERCENT] [--pct-flip PERCENT] [--pct-anyevent PERCENT] [--pct-pinchzoom 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] ...] [--throttle MILLISEC] [--randomize-throttle] [--profile-wait MILLISEC] [--device-sleep-time MILLISEC] [--randomize-script] [--script-log] [--bugreport] [--periodic-bugreport] COUNT
1、调试设备找不到
[blockquote]
error: no devices/emulators found
[/blockquote]
解决方案: 打开开发者选项,打开 USB 调试