Android 测试工具—Monkeyrunner录制回放

2021-08-09 11:01:49 浏览数 (2)

Monkeyrunner Recorder简介

Monkeyrunner Recorder是Monkeyrunner的图形GUI工具,用户可以直接操作来生成测试脚本。

Recorder功能

  • 可以自动显示手机当前的界面
  • 自动刷新手机的最新状态
  • 点击手机界面即可对手机进行操作,同时会反应到真机,而且会在右侧插入操作脚本

Monkeyrunner Recorder启动

启动脚本

代码语言:javascript复制
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder
device=mr.waitForConnection()
recorder.start(device)

启动成功之后显示界面如下:

菜单功能

  • wait:用来插入下一次操作的时间间隔,点击后即可设置时间,单位是秒
  • Press a Button:用来确定需要点击的按钮,包括menu、home、search,以及对按钮的press、down、up属性
  • Type Something:用来输入内容到输入框
  • Fling:用来进行拖动操作,可以向上、下、左、右,以及操作的范围
  • Export Actions:用来导出脚本,不需要后缀名。
  • Refresh Display:用来刷新手机界面,估计只有在断开手机后,重新连接时才会用到
操作录制

直接在界面点击操作即可,右侧会自动生成操作的内容,操作完成之后可以导出脚本。(任意后缀名或无后缀均可以) 录制导出后脚本如下:

代码语言:javascript复制
TOUCH|{'x':69,'y':922,'type':'downAndUp',}
TOUCH|{'x':200,'y':776,'type':'downAndUp',}
TOUCH|{'x':657,'y':56,'type':'downAndUp',}
TOUCH|{'x':186,'y':282,'type':'downAndUp',}
TYPE|{'message':'zxw2017',}
TOUCH|{'x':267,'y':370,'type':'downAndUp',}
TYPE|{'message':'123456',}
TOUCH|{'x':355,'y':472,'type':'downAndUp',}

回放脚本

1.首先准备好回放脚本的编译代码 playback.py:

代码语言:javascript复制
import sys
from com.android.monkeyrunner import MonkeyRunner as mr
  
CMD_MAP = {
    'TOUCH':lambda dev,arg:dev.touch(**arg),
    'DRAG': lambda dev,arg:dev.drag(**arg),
    'TYPE': lambda dev,arg:dev.type(**arg),
    'PRESS': lambda dev,arg:dev.press(**arg),
    'WAIT': lambda dev,arg:mr.sleep(**arg)
}
       
def process_file(f,device):
    for line in f:
        (cmd,rest)=line.split('|')
        try:
           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]
    f = open(file,'r')
    device = mr.waitForConnection()
    process_file(f,device)
    f.close()

if __name__=='__main__':
	main()

该脚本的功能是将录制的脚本转化为可以回放执行的完整脚本。

回放命令

代码语言:javascript复制
monkeyrunner E:monkeyrunner_scriptplayback.py E:monkeyrunner_scriptkyb_recorder

特别说明

monkeyruner录制出来的脚本回放稳定性较差,特别是录制的有些操作,回放时无法操作,因此一般很少使用。

0 人点赞