关于Monkey
1. Monkey介绍及作用
Monkey是Android系统SDK中附带的一个命令行工具,可以运行在模拟器例或者真机中,向被测应用程序发送伪随机事件流(如按键、触屏、手势等),进行压力测试。
开发人员可以结合Monkey打印的日志和系统打印的日志,分析测试中的原因。
adb全称是Android Debug Bridge 起桥梁连接作用,是Android SDK提供的Debug工具。
2. Monkey测试原理
Monkey是由java语言写的,Monkey.jar包是由一个名为monkey的shell脚本来启动执行,shell脚本的存放路径:/system/bin/monkey。
3. Monkey的环境搭建
1) 安装JAVA环境
a) 装好java的JDK,配置环境变量
JAVA_HOME:jdk安装路径
PATH:使系统可以在任何路径下识别java命令
%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin
CLASSPATH:java加载类(class或lib)
b) cmd出现java-verson,java,javac表示环境变量配置成功
2) 安装Android SDK环境
a) 下载最新的Android SDK
b) 解压SDK文件,运行SDK Manager.exe,进行SDK下载
c) 运行后在出现的界面选择要安装的Android版本,点击 “Install X package”
d) 在出现的界面上选择Access license,点击Install。(开始安装,整个安装过程比较久)
3) 连接真机
在dos命令下进入SDK的adb.exe,输入adb devices 显示连接的手机型号。然后就可以开始执行Monkey命令了。
4. Monkey命令大全
基础参数:
-v 指定打印信息的详细级别,默认为0,最高为2,-v -v -v。
-s 指定随机事件的种子数,相同的种子数产生相同的事件序列。事件相同但是具体的坐标是不同的。
-- throttle 指定用户操作事件间的时延,单位为毫秒。
-p 指定package
发送的事件类型
--pct-touch 20 触摸事件
--pct-motion 滑动事件
--pct-trackball 轨迹事件(一个或多个随机移动组成)
--pct-nav 导航事件
--pct-majornav 主要导航事件,如回退按键、菜单按键
--pct-syskeys 系统按键事件的百分比:Home、Back等
--pct-appswitch activity之间的切换
--pct-anyevent 任意事件
调试选项
--ignore-crashes 忽略崩溃(Force & Close)
--ingore-timeouts 忽略超时(ANR)
--ignore-security-exceptions 忽略应用程序出现许可错误
--kill-process-after-error 当应用程序发生错误时,应用程序停止并保持在当前状态
--motior-native-crashes 指定是否检视并报告应用程序发生崩溃的本地代码
>符号后跟保存在本地的日志文件
2>&1 把中间忽略的异常日志页放入到日志文件中
放在最后的&符号表示开始执行Monkey后拔掉数据线不会影响测试
adb shell screencap 屏幕截图脚本
Monkey测试出现错误后,一般的差错步骤:
- 找到是哪个地方出现错误
- 查看Monkey出错前的一些时间动作,并手动执行该动作
- 如若还找不到错误,再执行一遍原来的monkey命令,seed值要一样
一般的测试结果分析:
ANR:搜索ANR
崩溃问题:搜索CRASH
异常问题:搜索“Exception” Force Close
错误问题:在日志中搜索“Error”、“Failed”、“Warning”