分享

Monkeyrunner之recorder脚本录制回放技术

 wenxuefeng360 2022-07-02 发布于四川
像loadrunner或jmeter,badboy等一系列的测试用具,都具有录制脚本的功能,自动化测试工具monkeyrunner也有该功能,今天就聊一聊monkeyrunner recorder的脚本录制和回放。
Monkeyrunner recorder简介
Monkeyrunner recorder是monkeyrunner的图形GUI工具,用户可以直接操作来生成脚本。
录制前准备
在脚本录制前,我们需要准备两个文档放置到Android\android-sdk\tools路径下,这两个文档分别是monkey_recorder.py和monkey_playback.py。
monkey_recorder.py是recorder工具的启动文件,如下图:

图片

我们需要导入MonkeyRunner模块和MonkeyRecorder模块,并连接设备,启动recorder工具。代码如下:
#--coding:utf-8from com.android.monkeyrunner import MonkeyRunneras mrfrom com.android.monkeyrunner.recorderimport MonkeyRecorder as recorderdevice =mr.waitForConnection(3,'127.0.0.1:62001')recorder.start(device)
注:其中连接的设备根据你自己的设备进行输入,可以在命令行中输入adb devices进行查看。
monkey_playback.py文件是我们回放时的启动文件,也需要我们提前准备好。代码如下:
#coding=utf8#需要用到命令行参数列表因此导入sysimport sys #导入monkeyrunner用来操作设备from com.android.monkeyrunner importMonkeyRunner  #窗念一个命令哈希表,定义操作事件CMD_MAP = {    'TOUCH': lambda device, arg: device.touch(**arg),    'DRAG': lambda device, arg: device.drag(**arg),    'PRESS': lambda device, arg: device.press(**arg),    'TYPE': lambda device, arg: device.type(**arg),    'WAIT': lambda device, arg: MonkeyRunner.sleep(**arg)    } #处理录制脚本文件#定义两个参数:#scriptfile----录制脚本的文件名#device--------当前设备def process_file(scriptfile, device):        #读取文件信息   for line in scriptfile:               #文件以|进行分割              #把命令放入cmd中              #把命令操作之后的信息存入rest中       (cmd, rest) = line.split('|')        try:            #将字符串rest当成有效的表达式来求值并返回计算结果           rest = eval(rest)        except:            print 'unable to parse options'            continue       #判断命令是否在  CMD_MAP中       if cmd not in CMD_MAP:            print 'unknown command: ' + cmd            continue       #回放脚本中命令操作                      CMD_MAP[cmd](device, rest) def main():    #在命令行输入例如:       #monkeyrunnerapp_playback "文件名[可以带有路径]"   file = sys.argv[1]        #打开录制脚本   scriptfile = open(file, 'r')       #对连接的对象创建一个对象   device = MonkeyRunner.waitForConnection()     #调用回放函数,对脚本进行回放       process_file(scriptfile, device)       #关闭脚本文件   scriptfile.close(); #判断是否作为运行程序#如果是运行main函数      if __name__ == '__main__': main()
准备好改文件后,我们把它放置到Android\android-sdk\tools下,与monkeyrunner.bat放在同一路径下。

图片

脚本录制
我们打开cmd命令行,输入如下命令,打开recorder工具。
monkeyrunner monkey_recorder.py
打开后页面如下:

图片

在开始录制脚本之前,我们先了解一下工具的使用。
Wait:用来插入下一次操作的时间间隔,点击后即可设置时间,单位是秒。
Press a Button:用来确定需要点击的按钮,包括menu、home、
search,以及对按钮的press、down、up属性。
Type Something:用来输入内容到输入框。
Fling:用来进行拖动操作,可以向上、下、左、右,以及操作的范围。
Export Actions:用来导出脚本,不需要后缀名,也可以添加后缀名.mr
Refresh Display:用来刷新手机界面,估计只有在断开手机后,重新连
接时才会用到。
接下来我们还是以登录为例来录制脚本。
1、在桌面点击要录制的APP图标,启动程序。(需等待几秒)
2、点击用户名输入框,输入用户名账号。
3、点击密码输入框,输入密码。
4、点击登录按钮,
那么下面,我们就按照我们整理的操作步骤进行录制,建议在录制的时候,每一大步后都添加一个等待,以免程序的相应影响我们的脚本使用。
1、我们点击桌面APP图标,启动程序后,添加一个等待时间,3-5秒即可。如下图:

图片

2、进行后面的操作,点击输入框,输入账号和密码,点击登录,进入首页,所有的操作都录完以后,我们可以在工具的右侧查看自动生成的代码。如下图:(点击“Type Something”输入账号信息)

图片

图片

保存脚本
点击工具右上角的“Export Action”按钮,将脚本保存到桌面(或其他地方),保存格式为.mr

图片

脚本导出后,整个录制就结束了,我们可以直接关闭工具,也可以在cmd命令行ctrl+c,输入Y退出。
回放脚本
在cmd命令行,执行以下命令回放脚本。
Monkeyrunner monkey_playback.py 录制脚本的路径
如图:

图片

这样,手机页面就开始执行我们录制的脚本。
相对于monkey和monkeyrunner这两个工具来说,他俩有许多的不足之处,比如:
1、元素定位依赖于坐标点,稳定性差,不利于做多个安卓机型的测试。
2、不支持快平台使用(IOS不支持)。
3、没有成熟的系统管理框架。
4、只适用于冒烟测试,检测APP的稳定性。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多