Android SDK中的android调试桥(adb)shell里,有一个用于测试的工具——monkey。不知道最早monkey这个名字的来历,不过他确实如同一只调皮的猴子,在android app里各种乱按、乱晃、乱摸。

如何使用:进入命令行,来到android SDK的platform-tools目录下,输入命令

user@user:~/workspace/android-sdk-linux_x86/platform-tools$ adbshellmonkey

即可查看到monkey工具的配置参数的用法。如下:

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]
[--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]
COUNT

在执行操作命令前,可以键入

user@user:~/workspace/android-sdk-linux_x86/platform-tools$ adbshell
如此,便进入了adb shell ,可以直接输入monkey 来执行命令。否则,每次都需要输入adb shell monkey 进行操作。

实战

1. just for fun

最简单的入手方法是:

adbshellmonkey-pcom.snake-v100 表示对 -p 后的软件包的app 进行100 次完全随机的测试。 monkey会随机的生成100次事件。

输出中将依次列出所产生的随机事件。


2.针对性测试

当然,不用app有不同的侧重点,我们需要测试的重心也就不一样,这时候,我们或许需要调整随机事件中不同事件的比例。

--pct就是这个用处。比如:" --pct-touch 50 % " 表示生成的随机事件中触摸事件占有50% ,而" --pct-syskeys 10% "则表示生成的随机事件中按键事件占10%。


3. 调试分析

随着测试的深入,我们需要忽略app的崩溃,而不是停住,monkey同样能做到。

--ignore-crashes

甚至,它还能生成profiling报告!

--hprof

还有更多的调试功能,见下表

该表对monkey 的用法做了较清晰而翔实的描述。


更多相关文章

  1. tcping测试服务器TCP端口
  2. 零基础APP自动化测试教程(一)
  3. Android(安卓)View事件传递详解
  4. 解决Eclipse提示错误:Your project contains error(s)
  5. android 事件处理--onInterceptTouchEvent和onTouchEvent调用时
  6. Android(安卓)之事件处理(二)基于监听的事件处理
  7. 【整理自慕课网】Android动感系列-扫一扫 ZXing
  8. AndroidStudio CMakeList的总结
  9. Android(安卓)cmake编译FFmpeg

随机推荐

  1. Android软件版本更新
  2. Android(安卓)LayoutInflater深度解析
  3. 如何获取GAID,Android(安卓)ID和IMEI
  4. Android(安卓)P PackageManagerService
  5. Android搭建客户端连接java构建的服务端
  6. Android内容提供器
  7. Android(安卓)自定义组件之如何实现自定
  8. Android(安卓)Ormlite 学习笔记1 -- 基础
  9. Android(安卓)Chronometer(计时器)
  10. Android(安卓)TextView字体设置