• monkeyrunner录制和回放功能


    脚本录制

    网上先是搜索了一下,说是SDK--tools目录下有monkey_recorder.py和monkey_playback.py的脚本,但是我的没有找到所以可以自己编辑个脚本保存即可~

    先编辑以下代码为monkey_recorder.py,保存在tools中

    from com.android.monkeyrunner import MonkeyRunner as mr
    from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder

    device = mr.waitForConnection()
    recorder.start(device)

    这个是回放的代码monkey_playback.py

    #!/usr/bin/env monkeyrunner
    # Copyright 2010, The Android Open Source Project
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    # http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.

    import sys
    from com.android.monkeyrunner import MonkeyRunner

    # The format of the file we are parsing is very carfeully constructed.
    # Each line corresponds to a single command. The line is split into 2
    # parts with a | character. Text to the left of the pipe denotes
    # which command to run. The text to the right of the pipe is a python
    # dictionary (it can be evaled into existence) that specifies the
    # arguments for the command. In most cases, this directly maps to the
    # keyword argument dictionary that could be passed to the underlying
    # command.

    # Lookup table to map command strings to functions that implement that
    # command.
    CMD_MAP = {
    'TOUCH': lambda dev, arg: dev.touch(**arg),
    'DRAG': lambda dev, arg: dev.drag(**arg),
    'PRESS': lambda dev, arg: dev.press(**arg),
    'TYPE': lambda dev, arg: dev.type(**arg),
    'WAIT': lambda dev, arg: MonkeyRunner.sleep(**arg)
    }

    # Process a single file for the specified device.
    def process_file(fp, device):
    for line in fp:
    (cmd, rest) = line.split('|')
    try:
    # Parse the pydict
    rest = eval(rest)
    except:
    print('unable to parse options')
    continue

    if cmd not in CMD_MAP:
    print('unknown command: ' + cmd)
    continue

    CMD_MAP[cmd](device, rest)


    def main():
    file = sys.argv[1]
    fp = open(file, 'r')

    device = MonkeyRunner.waitForConnection()

    process_file(fp, device)
    fp.close();

    if __name__ == '__main__':
    main()

    脚本文件下载地址

    然后执行,monkeyrunner  monkey_recorder.py,会出现一个录制弹窗

     Wait  是设置等待时间

    press a Button  是发送MENU HOME SEARCH按钮的Press Down Up响应事件

    type something 是输入字符

    Fling 是模拟东西南北的拖动操作

    Export Actions 是导出脚本

    Refresh Display 是刷新功能

    然后就可以进行录制app操作了~

    最后导出export  Action,cmd中回放此导出文件即可

    monkeyrunner   monkey_playback.py   导出脚本路径

    转载请附上原文链接。
  • 相关阅读:
    蓝桥杯历届试题 幸运数 链表模拟
    最小路径覆盖和最小边覆盖及相关性质
    HDU 1724 Ellipse 自适应simpson积分
    [kuangbin带你飞]专题六 最小生成树 POJ 2421 Constructing Roads
    [ An Ac a Day ^_^ ][kuangbin带你飞]专题六 最小生成树 POJ 2031 Building a Space Station
    Codeforces Round #390 (Div. 2)
    数据结构 有向图的非递归遍历
    数据结构 二叉树
    vi/vim基本使用方法
    网络赛用头文件
  • 原文地址:https://www.cnblogs.com/bugbreak/p/11987656.html
Copyright © 2020-2023  润新知