当前位置:酷酷问答>百科知识>最有用的monkeyrunner工具录制与回放经验总结

最有用的monkeyrunner工具录制与回放经验总结

2024-11-15 01:16:20 编辑:zane 浏览量:521

最有用的monkeyrunner工具录制与回放经验总结

的有关信息介绍如下:

最有用的monkeyrunner工具录制与回放经验总结

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

录制与回放文件准备:

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

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:用来确定需要点击的按钮,包括menu、home、search,以及对按钮的press、down、up属性。

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

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

Export Actions:用来导出脚本。

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

录制与保存:

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

脚本回放:

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

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

版权声明:文章由 酷酷问答 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kukuwd.com/article/123742.html
热门文章