1、Monkey测试简介
monkey是安卓命令行工具,它向系统发送伪随机的用户事件,例如:按
键的输入、触摸屏的输入、手势输入等操作来对设备上的程序进行压力
测试,检测程序多久的时间会发生异常。因此,monkey常常用来测试软
件的稳定性、健壮性。
Monkey 测试的特点:
1)、测试的对象仅为应用程序包,有一定的局限性。
2)、Monky测试使用的事件数据流是随机的,不能进行自定义。
3)、可对MonkeyTest的对象,事件数量,类型,频率等进行设置
2、案例1:
adb shell monkey -p com.android.browser -v 500 >log.text(从switch开始看)
详细命令
1) 参数 -p 指定一个或多个包
指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。
* 指定一个包: adb shell monkey -p com.htc.Weather 100 [100是事件计(即让Monkey程序模拟100次随机用户事件)]。
* 指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100
* 不指定包:adb shell monkey 100
2) 参数 -v 指定日志详细
分为三级信息日志,-v -v -v三级日志最详细, -v一级日志缺省值信息量少
日志级别 Level0
* 示例 adb shell monkey -p com.ddinfo.ddmall –v 100,说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息
* 日志级别 Level 1
示例 adb shell monkey -p com.ddinfo.ddmall –v -v 100,说明提供较为详细的日志,包括每个发送到Activity的事件信息
* 日志级别 Level 2
示例 adb shell monkey -p com.ddinfo.ddmall –v -v –v 100,说明最详细的日志,包括了测试中选中/未选中的Activity信息
3) 参数 -s 用于指定伪随机数生成器的seed值
如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
* Monkey 测试1:adb shell monkey -p com.htc.Weather –s 10 100
Monkey 测试2:adb shell monkey -p com.htc.Weather –s 10 10
常见的错误:
ANR:无响应
崩溃:Exception
3.案例2
adb shell monkey -p com.android.browser -v -v --throttle 500 90
-v代表次数 多个-v可以指定mongkey等级
--throttle每个操作等待500ms
adb shell monkey -p com.android.browser -v -v --pct-touch 50 --pct-trackball 30 --throttle 500 90
--pct-touch 点击的百分比
--pct-trackball 滚轮的百分比
--ignore-crashes 忽略崩溃
--ignore-timeouts 忽略超时
4.案例3
CRASH:com.android.browser(pid2008)
Short Msg:java.lang.NullPointerException
Long Msg:java.lang.NullPointerException
**System appears to have crashed at event 88 of 600 using seed 10
日志说明在600个操作的88个里面出现了异常,用的种子是10。0就是伪随机数的种子。我们下次想用相同的操作序列再现这个问题,
就使用下面的命令:adb shell monkey -p 包 -s 10 600