猴子测试monkey testing
在客户没有发现的情况下给应用打补丁,称为游击队补丁guerrilla patch,没有规划没有计划
guerrilla→gorilla猩猩→monkey
经典三句话
- no test case关注点
- no test plan计划
- no test requirement需求
没法通过手工测试实现,只能通过自动化测试工具,Android系统自带
monkey执行过程:
基本执行命令
abd shell monkey -p 包名 随机事件数(在当前应用上执行多少个随机事件)
事件数建议不要放太大,执行结束前关机都没用
查看包名:adb shell dumpsys |findstr “mfocused”
例如:
针对日历执行1500次Monkey测试(命令)
结束后显示耗在手机、无线网、没有连接上的时间
-v参数
制定打印信息的三个详细级别
-v 0级
-v -v 1级
-v -v -v 2级 最详细
事例:0级情况 adb shell monkey -v -p com.android.calendar 100
seed:只要seed数一样,它执行的伪随机事件和顺序也一样
Include Category:执行monkey测试依赖于哪两个基础活动
Event percentages:指定事件数中,各活动所占百分比
一共有0~10号,
11个事件
0:触摸(按下、抬起操作)选项对应参数:—pct-touch
1:手势(单手指按方向直线单次滑动)参数:—pct-motion
2:多指手势(多指滑动)参数:—pct-pinchzoom
3:轨迹球(手指移动时跟着移动的小球,现在大部分应用里已经没有了)参数:—pct-trackball
4:屏幕旋转:(字面意思)参数—pct-rotation
5:导航事件(在屏幕里的上下左右操作)—pct-nav
6:导航(返回/切换/菜单操作)—pct-majornav
7:系统按键(音量键之类)—pct- syskeys
8:启动活动(控制应用启动/跳转/关闭)—pct-app switch
9:键盘轻弹(调出键盘)—pct-flip
10:其他:(普通按键、不常用的设备按钮事件)—pct-anyevent
选项:
三种类型:事件相关、约束相关、调试相关
崩溃型报错:false/close,monkey会停止运行
在包名后加上:--ignore-crashes ,monkey会在产生异常后继续向系统发送事件,知道指定的事件消息全部完成为止
-p参数
用于约束限制,指定一个或多个包,money将只允许系统启动用户指定的app
如adb shell monkey -p com.android.calendar 100
--throttle参数
用于让操作过程速度降低,单位:毫秒(建议1000以上)
如adb shell monkey -p com.android.calendar --throttle 3000 100