Monkey相关
- Monkey
- MonkeyRunner
- MonkeyScript
Monkey
Monkey测试是测试软件的稳定性、健壮性的压力测试工具
Monkey测试的对象为应用的程序,时间数据流是随机的,不能自定义
Monkey是Android中的一个命令行工具,存在于手机系统里,可以运行在模拟器里或实际设备中。
Monkey在adb shell中生成用户或者系统的伪随机事件,并向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行测试。
Monkey相关的所有指令:
C:\Users\admin>adb shell monkey -help
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]
[--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] ...]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
[--permission-target-system]
COUNT
Monkey指令使用举例:
生成500个事件、延时为10ms
adb shell monkey -p Package -v -v -v -s 10 500
出现异常时,不停止运行
adb shell monkey -p Package --ignore-crashes --ignore-security-exceptions -v -v -v -s 10 500
MonkeyRunner
MonkeyRunner
特点和作用:多台设备控制、功能测试、回归测试、可扩展自动化。
提供一系列的API、是一种自动化测试工具,通过特定的API定义特定的命令和事件控制设备。
因此可以写一个Python程序对Android应用程序或测试包进行安装,运行,发送模拟击键,对用户界面进行截图并将截图存储在指定目录上等操作。
MonkeyRunner的使用方法:
- \sdk\tools目录下具有monkeyrunner.bat文件
- Python脚本文件monkeyr.py放入上述目录下
- 然后执行之下命令:
Monkeyrunner D:\Program Files\sdk\tools\monkeyr.py
MonkeyRunner的基本功能要素有三个:
MonkeyDevice
MonkeyRunner
MonkeyImage
MonkeyScript
MonkeyScript
能够被Monkey识别的命令的集合,可以完成重复固定的操作。
脚本Monkey.script文件内容如下:
# Start of Script
type= user
count= 49
speed= 1.0
start data >>
LaunchActivity(com.android.settings, com.android.settings.Settings)
UserWait(100)
RotateScreen(1,0)
# DispatchPress(KEYCODE_HOME)
可以使用之下指令把上述文件放入指令的手机目录下,然后执行该脚本
adb -s HYLZUSQ4IFS8LJ45 push e:/Monkey.script /sdcard/
adb -s HYLZUSQ4IFS8LJ45 shell monkey -f/sdcard/Monkey.script 500
例子可见之下:
http://blog.csdn.net/jason_src/article/details/20121107
http://blog.csdn.net/ccc920123/article/details/53376560
http://blog.csdn.net/lyl00ling/article/details/77921621