Monkey测试
理解
在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样到处乱跑。
Monkey是Google提供的一个命令行工具,可运行在模拟器或实际设备中。它可以在规定的次数范围内做任何随机的操作,随机操作包括点击、滑动、Application切换、横竖屏、应用关闭等等,用户能做的操作都可以模拟,从而对正在运行的应用程序进行压力测试,目的是看设备多长时间会出现异常,并观察系统的稳定性和容错性能。
应用场景
对被测程序进行压力测试,检查和评估被测程序的稳定性。也可手写Monkey脚本,对某个功能进行专项的自动化测试,减少人为的进行重复性功能测试劳动力。
Monkey测试出crash的bug等级永远为1,版本发布前,Monkey跑出的结果中crash要为0。
业内标准:最终发布版本前,Monkey跑完的总次数不少于25W次,其结果里不允许有nullPointException出现。
Monkey命令基本参数介绍
-p
用于约束限制,用此参数指定一个或者多个包,指定包之后,monkey将只允许启动指定app,如果不指定包,monkey将启动系统中所有的app 。
例:
指定一个包 adb shell monkey -p 包名 -v 1000
指定多个包 adb shell monkey -p 包名1 -p 包名2 -p 包名3 -v 1000
不指定包 adb shell monkey -v 1000
-v
用于指定反馈的信息级别(日志的详细程度),分为三个级别,级别越高,日志越详细。
例:
adb shell monkey -p 包名 -v 1000
adb shell monkey -p 包名 -v-v 1000
adb shell monkey -p 包名 -v-v-v 1000
-s
指定伪随机数生成器的seed值,如果seed相同,则两次monkey 测试产生的事件序列也相同。
例:
adb shell monkey -p 包名 -s 35 -v 1000
--throttle<毫秒>
用于指定用户操作(即事件)间的时延,单位是毫秒;如果没有指定这个参数,monkey会尽可能快的 生成和发送消息。
指定操作之间的时间间隔,一方面是希望能更接近用户的操作场景,正常用户操作都会有一定的时间间隔;另一方面也是不希望因为过于频繁的操作而导致系统崩溃,尤其是在比较低端的手机上执行测试时。因此通过--throttle设置Monkey每个操作固定延迟0.5秒。
例:
adb shell monkey -p 包名 --throttle 3000 -v 100
定制事件