这一系列文章是我的读书笔记,方便以后回顾
一、 什么是Monkey
Monkey是Android SDK中自带的一个命令行工具,可以在模拟器里或实际设备中运行,它向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等,实现对正在开发的应用程序进行压力测试。
二、 Monkey的特征
1、 测试的对象仅为应用程序包,有一定的局限性。
2、 Monky测试使用的事件流数据流是随机的,不能进行自定义。
3、 可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
三、Monkey的基本使用
1. 进入monkey
命令:adb shell/system/bin/monkey
2. 运行monkey
命令:adb shell monkey <event-count> ,<event-count>是指随机发送事件数
adb shell monkey 100,运行monkey并执行了100件随机事件。
3. monkey常规类命令
adb shell monkey -h 显示monkey参数帮助信息usage
adb shell monkey -v 打印出日志信息,每个-v将增加反馈信息的级别,最多支持3个-v
4. monkey事件类命令
adb shell monkey -f <scriptfile> <event-count> 让monkey运行指定monkey脚本,<scriptfile> 为测试脚本名,<event-count>是指循环次数。
adb shell monkey -s <seed> <event-count> 可以重复之前的随机操作,-s 后接随机数的生成器的seed值。
adb shell monkey --throttle <milliseconds> 表示每个事件之间的固定延迟事件,时间的单位为ms,若后面不接时间,monkey将不会延迟
事件百分比
adb shell monkey --ptc-touch <percent> 设定触摸事件的百分比
adb shell monkey --ptc-motion <percent> 设定动作事件的百分比
adb shell monkey --ptc-trackball <percent> 设定轨迹球事件的百分比
adb shell monkey --ptc-nav <percent> 设定基本导航事件的百分比
adb shell monkey --ptc-majornav <percent> 设定主要导航事件的百分比
adb shell monkey --ptc-syskeys <percent> 设定按键事件的百分比
adb shell monkey --ptc-appswitch <percent> 设定启动事件的百分比
adb shell monkey --ptc-anyevent <percent> 其他类型事件的百分比,包括keypress、不常用button以及其他未提及事件
5. monkey约束类命令
adb shell monkey -p <allowed-package-name> <event-count>, 测试一个或多个包名,每个-p对应一个包。
adb shell monkey -p <main-category> <event-count>, 测试一个或多个类别。
6. monkey调试类命令
adb shell monkey --dbg-no-events <event-count> 监视应用程序所调用的包之间的转换
adb shell monkey --hprof <event-count> 在事件序列前后立即生成profiling report
adb shell monkey --ignore-crashes <event-count> 让monkey在应用崩溃或异常后继续发送事件直到计数完成
adb shell monkey --ignore-timeouts <event-count> 让monkey在任何超时错误发生后继续发送事件直到计数完成
adb shell monkey --ignore-security-exceptions <event-count> 让monkey在应用权限错误发生后继续发送事件直到计数完成
adb shell monkey --kill-process-after-error <event-count> 让monkey因为应用发生错误而停止时,将会通知系统停止发送错误进程
adb shell monkey --monitor-native-crashes <event-count> 让监视并报告monkey运行时Android系统native code的崩溃事件
adb shell monkey --wait-dbg <event-count> 暂停执行中的monkey,直到有调试器与它连接
7. monkey API
轨迹球事件
DispatchTrackball(long downTime, long eventTime, int action, float x, float y, float pressure, float size, int metaState, float xPrecision, float yPrecision, int device, int edgeFlags)
输入字符串事件
DispatchString(String text)
点击事件
DispatchPointer(long downTime, long eventTime, int action, float x, float y, float pressure, float size, int metaState, float xPrecision, float yPrecision, int device, int edgeFlags)
启动应用
LaunchActivity(String pkg_name, String cl_name)
等待事件
UserWait(long sleeptime)
按下按键
DispatchPress(int keyCode)
长按按键
LongPress(int keyCode)
发送按键
DispatchKey(long downTime, long eventTime, int action, int code, int repeat, int metaState, int device, int scancode)