• 如何编写monkey脚本


    1、介绍

    MonkeyScript是monkey的脚本语言,是一组可以被Monkey识别的命令集合,可以帮我们完成一系列的被固定的重复性操作。

    脚本优势:简单、快捷、不需要借助任何工具,只是运行一个脚本文件

    脚本缺点:只能简单实现坐标、按键等基本操作(根据像素点来进行操作)

    2、脚本格式

    #头文件、控制monkey发送消息的参数

    type=raw events

    count=10

    speed=1.0

    #以下为monkey命令

    start data >>

    LaunchActivity(pkg_name,activity)

    DispatchPress(KEYCODE_ENTER)

    DispatchPress(KEYCODE_HOME)

    ---->前三行是脚本头。count为脚本中包含的指令数目。speed为执行速度。

    ---->start data >>后面是执行的命令。

    3、常用方法

    LaunchActivity(pkg_name, cl_name): 启动应用的Activity。参数:包名和启动的Activity。

    (1)点击操作

    Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略。

    DispatchPress(keyCode): 按键。注:keyCode值可以百度android keycode列表获取

    LongPress():  长按2秒。

    PressAndHold(x, y, pressDuration):  模拟长按事件。

    DispatchPointer(downTime,eventTime,action,x,y,pressure,size,metaState,xPrecision,yPrecision,device,edgeFlags):DispatchPointer命令用于向一个指定的坐标位置,发送点击操作。

    主要关注action、x、y三个参数。action:事件是按下还是抬起,0表示按下,1表示抬起。x、y:表示当前事件触发的X轴和Y轴的坐标。两个DispatchPointer命令加在一块,一个按下一个抬起,表示一次点击操作,其余参数默认设置为0即可。downTime,eventTime表示持续时间,用毫秒表示。

    (2)拖拽操作

    Drag(xStart, yStart, xEnd, yEnd, stepCount):  用于模拟一个拖拽操作。

    PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放手势。

    (3)等待操作

    UserWait(sleepTime): 等待一段时间,sleepTime表示的等待时间,单位为毫秒。

    DeviceWakeUp(): 唤醒屏幕。

    ProfileWait: 等待5秒。

    (4)其他操作

    DispatchString(input):  输入字符串。

    RotateScreen(rotationDegree, persist): 旋转屏幕。 参数:rotationDegree为旋转角度, e.g. 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变。

    DispatchFlip(true/false): 打开或者关闭软键盘。

    4.实例

    1. <脚本举例>

      要求:打开浏览器,输入www.ningmengban.com, 退出浏览器。这个步骤进行重复压力测试。

    2.  

      ---->脚本文件browser.txt编写内容如下:

      #头文件、控制monkey发送消息的参数

      type=raw events

      count=10

      speed=1.0

      #以下为脚本正文

      start data >>

      #1.打开浏览器

      LaunchActivity(com.android.browser,com.android.browser.BrowserActivity)

      ProfileWait()

      #2.清空网址

      Tap(223,146)

      ProfileWait()

      DispatchPress(112)

      ProfileWait()

      #3.输入网址

      DispatchString(www.ningmengban.com)

      ProfileWait()

      #4.确认,载入网址

      DispatchPress(KEYCODE_ENTER)

      ProfileWait()

      #5.完成退出浏览器

      DispatchPress(KEYCODE_HOME)

      ProfileWait()

    ---->将browser.txt文件push到手机中

    adb push D:rowser.txt data/local/tmp

    D:rowser.txt 为本地脚本文件路径及名称,data/local/tmp为手机路径

    ---->运行脚本

    adb shell monkey -f data/local/tmp/browser.txt -v -v 200

  • 相关阅读:
    转发:前端新人少走弯路
    react 表单(受控组件和非受控组件)
    axios封装的拦截器的应用
    react与redux的一点心得(理解能力有限,蜗牛进度)
    redux一些自习时候自己写的的单词
    react路由的跳转和传参
    学以致用,react学习前奏准备阶段
    原型,原型链,给予原型和class的继承
    rpm安装和卸载
    .net项目发布到iis
  • 原文地址:https://www.cnblogs.com/crystal1126/p/12733983.html
Copyright © 2020-2023  润新知