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录制出来的脚本回放稳定性较差,特别是录制的有些操作,回放时无法操作,因此一般很少使用。