前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android 测试工具—Monkeyrunner录制回放

Android 测试工具—Monkeyrunner录制回放

作者头像
清风穆云
发布于 2021-08-09 03:01:49
发布于 2021-08-09 03:01:49
1.3K00
代码可运行
举报
文章被收录于专栏:QA一隅QA一隅
运行总次数:0
代码可运行

Monkeyrunner Recorder简介

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

Recorder功能

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

Monkeyrunner Recorder启动

启动脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
monkeyrunner E:\monkeyrunner_script\playback.py E:\monkeyrunner_script\kyb_recorder

特别说明

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 QA一隅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Monkeyrunner Recorder简介
  • Recorder功能
  • Monkeyrunner Recorder启动
    • 启动脚本
    • 菜单功能
    • 回放脚本
    • 回放命令
    • 特别说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档