Monkey

作者: 主音King | 来源:发表于2018-12-25 14:39 被阅读0次

    AndroidStudio自带在Android/sdk/platform-tools文件下的adb来执行monkey
    1、-p:用于约束限制。

    adb shell monkey -p 包名 1
    

    1:表示模拟用户随机事件参数,事件总数,最低1
    2、-v:指定反馈信息级别,分三个。-v默认,-v -v -v最详细的信息

    adb shell monkey -p 包名 -v 1;
    

    3、-s:随机种子值。复现bug很重要,

    adb shell monkey -p 包名 -s 111 10
    

    4、-f:后接测试脚本名,例如:adb shell monkey -f 脚本名 事件总数
    5、--throttle:翻译减速的意思,后面接时间,单位为ms,,表示事件之间的固定延迟,如果不接该项,monkey将不会延迟,例如:adb shell monkey --throttle 500 -p 包名 事件总数
    6、--pct-事件类别 11个事件百分比控制(有的是9种事件,没有--pct-pinchzoom,--pct-rotation事件)由安卓SDK决定
    使用
    输入

    adb shell monkey -p xxx.xxxx.xxx  -s 123123 --throttle 300 -v -v 20 > d:\monkey.txt
    

    这里指定了seed值123123,每个事件之间休息300ms,执行了20个事件,然后将日志信息保存在了monkey.txt文件中
    如下一些日志解释:

    11种事件,按顺序罗列的
    --pct-touch {+百分比}:0
    翻译触摸,触摸事件泛指发生在某一位置的一个down-up事件,点击
    --pct-motion {+百分比}:1
    翻译动作,动作事件泛指从某一位置接下(即down事件)后经过一系列伪随机事件后弹出(即up事件)
    --pct-pinchzoom {+百分比}:2
    翻译二指缩放,智能机上的放大缩小手势操作事件
    --pct-trackball {+百分比}: 3
    翻译轨迹,轨迹事件包括一系列的随机移动,以及偶尔跟随在移动后面的点击事件
    --pct-rotation {+百分比}:4
    翻译屏幕旋转,横屏竖屏事件
    --pct-nav {+百分比}:5
    翻译基本导航,基本导航事件主要来自方向输入设备的上、下、左、右事件
    --pct-majornav {+百分比}:6
    翻译主要导航,主要导航事件通常指引发图形界面的一些动作,如键盘中间按键、返回按键、菜单按键等
    --pct-syskeys {+百分比}:7
    翻译系统按键,系统按键事件通常指仅供系统使用的保留按键,如HOME键、BACK键、拨号键、挂断键、音量键等
    --pct-appswitch {+百分比}:8
    翻译应用启动,应用启动事件(activity launches)即打开应用,通过调用startActivity()方法最大限度地开启该package下的所有应用
    --pct-flip {+百分比}:9
    翻译翻转,键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
    --pct-anyevent {+百分比}:10
    翻译其他类型,其他类型事件指上文中未涉及的所有其他事件,如keypress、不常用的button等
    

    monkey 发生错误的时候退出:

    adb shell monkey -p xxx.xxx.xxx -s 123456 -v -v 2000  > d:\monkey.txt
    

    脚本monkey.txt如下:

    type= raw events
    count= 1
    speed= 1.0
    start data >>   
    LaunchActivity(cn.firstleap.parent,cn.firstleap.parent.ui.activity.SplashActivity);
    UserWait(1000);
    
    Tab(500,300);
    DispatchPress(KEYCODE_ENTER)
    UserWait(1000);
    
    DispatchPress(KEYCODE_BACK);
    UserWait(1000);
    
    RunCmd(screencap -p /sdcard/tmp.png);
    UserWait(1000);
    
    Drag(0, 0, 500, 500);
    DispatchPress(KEYCODE_ENTER)
    UserWait(1000);
    
    DispatchString(www.baidu.com);
    UserWait(1000);
    
    DispatchPress(KEYCODE_BACK);
    
    UserWait(1000);
    

    把脚本push到sdcard中

    adb push d:\monkey.txt sdcard/monkey.txt 
    

    然后执行脚本

    adb shell monkey -f sdcard/monkey.txt -v -v 1
    

    相关文章

      网友评论

          本文标题:Monkey

          本文链接:https://www.haomeiwen.com/subject/yjhflqtx.html