最有帮助的monkeyrunner录制与回放资料

上一篇 / 下一篇  2017-07-19 09:47:06 / 天气: 阴雨 / 心情: 高兴 / 精华(2) / 置顶(1) / 个人分类:原创

    monkeyrunner是Google自带的基于黑盒的自动化测试工具,通过与Python语言结合,你可以写出你想要的结果。而通过我们简单的配置,及时不会Python语言也能轻松的实现自动化测试,完全零代码测试。下面是测试准备工作

   一 文件准备:
   monkeyrunner的源代码可以在android源代码里找到,monkeyrunner源代码里有个scripts文件夹,里面有recorder.pymonkey_playback.py两个python文件,这两个文件就是用来录制和回放的~!将这两个文件放入到sdk/tool目录下。
   若没有找到这两个文件,我们可以自制文件:将下面两段代码分别放入对应recorder.pymonkey_playback.py两个python文件:

贴一下monkey_recorder.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.

 

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()

到这里文件准备已完成。

   二 启动工具

    cmd中进入到sdk/tool目录下,例如我的目录是:D:\softwere\adt\sdk\tools,然后在命令行中输入命令:

monkeyrunner monkey_recorder.py:

当点击enter见若能弹出下图,则启动成功。

    三 窗口界面说明

    wait用来插入下一次操作的时间间隔,点击后即可设置时间,单位是秒。

         Press a Button:用来确定需要点击的按钮,包括menuhomesearch,以及对按钮的pressdownup属性。

         Type Something:用来输入内容到输入框。

         Fling:用来进行拖动操作,可以向上、下、左、右,以及操作的范围。

         Export Actions:用来导出脚本。

         Refresh Display:用来刷新手机界面,估计只有在断开手机后,重新连接时才会用到。

    录制与保存

    接上步,在屏幕界面区域点击需要测试的应用,可以再点击界面上提供的事件按钮插入事件,若录制好后点击Export Actions将脚本保存至本地,可以给脚本加后缀.mr文件,也可以不加后缀。

    脚本回放

    开启cmd,进入到sdk/tool目录下,执行monkeyrunner monkey_playback.py脚本的绝对路径。如图:

到了这里,就已经轻松的完成了自动化测试工作了。








TAG:

 

评分:0

我来说两句

小布丁点

小布丁点

白纸的空间无限,而我通过时光的累积,共享出有益的结晶,添光增彩。

我的栏目

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3400
  • 日志数: 2
  • 建立时间: 2014-12-05
  • 更新时间: 2017-08-07

RSS订阅

Open Toolbar