Monkey测试是Android平台下自动化测试的一种快速有效的手段,通过Monkey工具可以模拟用户触摸屏幕、滑动轨迹球、按键等操作来对模拟器或者手机设备上的软件进行压力测试,检测该软件的稳定性、健壮性。它的原理是向系统发送伪随机的用户事件流(如案件输入、触摸输入、手势输入等),实现对正在开发的应用程序进行压力测试。
Monkey测试特性:
(1)测试的对象仅为应用程序包(apk包),有一定的局限性
(2)Monkey测试使用的事件流数据是随机的,不能进行自定义
(3)可对MonkeyTest的对象、事件数量、类型、频率等进行设置
Monkey测试的基本用法
基本语法如下:
$adb shell monkey[options]
如果不指定options,Monkey将以无反馈模式启动,并把事件任务发送到安装在目标环境中的全部包。
$adb shell monkey -p your.package.name -v number
$adb -p(package的意思)指定文件名 -v测试的次数和频率 number次数
测试:
将apk文件复制到Android sdk对应放入platform-tools目录下;
进行apk的安装(adb命令下安装apk的命令为:adb install文件名.apk);
安装成功之后,需要知道应用程序主Activity所在的包名(我们可以使用adb shell命令查找到程序主Activity所在的包名),知道了包名,我们也可以利用adb命令进行应用程序的卸载,卸载apk文件的命令为adb uninstall 包名;
这里是最关键的一步,使用Monkey命令进行自动化压力测试
命令为#monkey -p 包名 -v 1000(参数说明:-p后跟着软件所在的包名,-v后跟测试的次数),这里对该软件进行1000次的自动化测试,几分钟即可完成测试。
Monkey测试的停止条件
(1)如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错
(2)如果应用程序产生了应用程序不响应的错误,Monkey将会停止并报错
Monkey命令参数说明
类别 | 选项 | 说明 |
常规 | -help | 列出简单的用法 |
-v | 命令行的每一个-v将增加反馈信息的级别。Level0(缺省值)出启动提示、测试完成和最终结果之外,提供较少信息。Level1提供较为详细的测试信息,如逐个发送到Activity的事件。Level2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity | |
事件 | -s <seed> | 伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey,他将生成相同的事件序列 |
--throttle<milliseconds> | 在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,时间将尽可能快的被完成 | |
--pct-touch <percent> | 调整触摸时间的百分比(触摸时间是一个down-up事件,它发生在屏幕的某单一位置) | |
--pct-motion <percent> | 调整触摸事件的百分比(动作时间有屏幕某处的一个down事件、一系列的伪随机事件和一个up事件组成) | |
原文:http://www.cnblogs.com/chhom/p/4995175.html