自动遍历-Monkey

简介

我们一般使用monkey指定自动遍历主要是通过adb shell monkey命令开启的,具体monkey其实就是一个模拟器或者真机设备上运行的程序,生成用户事件的伪随机流(点击、滑动、输入以及回退的动作)。

Monkey源码

相关命令

前置:需要安装Android SDK,并且配置对应环境变量
可以参考这位师兄的整理,很nice👏👍 monkey用法总结 大家快去点赞吧🤭

使用规则

  1. 配置基本选项,比如设置操作事件数量
  2. 操作约束,比如指定只在某个App运行,如果不约束的话,会在设备上随机找App运行,那就打不到咱们预期值。
  3. 事件类型和频率的设置,比如可以将点击事件,设置到50%的频率;不设置的场景下,事件类型和对应事件发生频率也是随机的
  4. 调试选项

命令

格式:adb shell monkey [options] count
在这里插入图片描述

  • adb shell monkey 100
    随机操作100次
  • adb shell monkey -p com.tencent.wework 100
    只在指定的应用【企业微信】下,随机产生100次事件;

    这个【企业微信】可以是其他应用包名
    也可以传入多个-p参数,指定在多个应用下随机执行这100个事件

  • adb shell monkey -p com.tencent.wework -s 20 100
    -s指定随机事件种子。如果多次执行Monkey时设置值相同,则测试时所产生的事件序列也相同的

    可以用事件相同执行序列回归bug修复

  • adb shell monkey -p com.tencent.wework -vv -s 20 100
    -vv参数是指打印出详细的操作日志
  • adb shell monkey -p com.tencent.wework --throttle 5000 100
    --throttle设置时间延迟;用于指定事件间操作间隔时延,单位是毫秒
  • adb shell monkey -p com.tencent.wework 操作事件 10 100
    指定某个操作事件在这个100个事件中的占比为10

    常用事件:
    –pct-touch 触摸事件,比如:点击
    –pct-motion 动作事件,比如:直线滑动
    – pct-trackball 轨迹事件,比如:移动+点击,曲线滑动
    –pct-majornav 主要导航事件,比如:系统回退按键、菜单按键
    在这里插入图片描述

上图日志中,事件对应的数字

	// 触摸事件百分比,即参数--pct-touch
	public static final int FACTOR_TOUCH        = 0;
	// 滑动事件百分比,即参数--pct-motion
    public static final int FACTOR_MOTION       = 1;
    // 缩放事件百分比,即参数--pct-pinchzoom
    public static final int FACTOR_PINCHZOOM    = 2;
    // 轨迹球事件百分比,即参数--pct-trackball
    public static final int FACTOR_TRACKBALL    = 3;
    // 屏幕旋转事件百分比,即参数--pct-rotation
    public static final int FACTOR_ROTATION     = 4;
    // 权限开关事件百分比,即参数--pct-permission
    public static final int FACTOR_PERMISSION   = 5;
    // 基本导航事件百分比,即参数--pct-nav
    public static final int FACTOR_NAV          = 6;
    // 主要导航事件百分比,即参数--pct-majornav
    public static final int FACTOR_MAJORNAV     = 7;
    // 系统事件百分比,即参数--pct-syskeys,如Home, Back, Start Call, End Call,音量控制
    public static final int FACTOR_SYSOPS       = 8;
    // Activity启动事件百分比,即参数--pct-appswitch,在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
    public static final int FACTOR_APPSWITCH    = 9;
    // 键盘翻转事件百分比,即参数--pct-flip,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
    public static final int FACTOR_FLIP         = 10;
    // 其他事件百分比,即参数--pct-anyevent,包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等
    public static final int FACTOR_ANYTHING     = 11;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值