monkeyrunner为我们提供了录制 回放的功能。
录制与回放使用原因:实际项目,需求变更频繁,且测试任务多,我们没有足够时间去写测试脚本,这是就可以进行录制脚本,然后通过回放,跑完需要的流程。
一、前提条件
1.Windows运行环境
2.android sdk安装并已配置好环境
3.手机或模拟器已连接电脑
二、MonkeyRecorder启动
1.方式一:直接在monkeyrunner交互命令行输入以下4条命令:
from com.android.monkeyrunner importMonkeyRunner as mrfrom com.android.monkeyrunner.recorder importMonkeyRecorder as recorder
device= mr.waitForConnection(5,'127.0.0.1:62001')
recorder.start(device)
注意:monkeyrunner交互命令行,即在cmd中输入monkeyrunner
![]()
2.方式二:将以上代码写到python脚本中,并命名monkey_recorder.py,cmd命令行中输入monkeyrunner monkey_recorder.py,进行打开
![]()
注意:这里的monkey_recorder.py需要拷贝到和monkeyrunner同级目录下,即sdk/tools
三、录制
1.工具简介
![]()
![]()
2.录制
MonkeyRecorder启动后,界面上显示的内容就是已连接的手机或模拟器当前屏幕的内容。
用鼠标点击这个界面,点击的坐标就会被记录下来,同时结合MonkeyRecorder界面顶部的按钮,即可进行录制。
如下图,我对app登录界面,进行如下操作:
1)鼠标点击“手机号码”输入框
2)“手机号码”输入框中输入登录用的手机号码
3)等待2秒
4)鼠标点击“密码”输入框
5)“密码”输入框中输入登录用的密码
6)等待2秒
7)鼠标点击“登录”按钮
![]()
四、回放
录制完成后,就可以进行回放,操作步骤如下:
1.点击Export Actions,导出我们录制时的操作,在本地生成一个文件,并根据需要命名:xxx.mr
2.将录制的文件(假如命名为test.mr),拷贝到和monkeyrunner同级目录下,即sdk/tools
3.将回放的脚本monkey_playback.py,同样保存在sdk/tools下;
monkey_playback.py代码如下:
![]()
![]()
importsysfrom com.android.monkeyrunner importMonkeyRunner
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.
defprocess_file(fp, device):for line infp:
(cmd, rest)= line.split("|")try:
rest=eval(rest)except:print ("unable to parse options")continue
if cmd not inCMD_MAP:print ("unknown command:" +cmd)continueCMD_MAP[cmd](device, rest)defmain():
file= sys.argv[1]
fp= open(file, "r")
device=MonkeyRunner.waitForConnection()
process_file(fp, device)
fp.close();if __name__ == "__main__":
main()
monkey_playback.py
4.在cmd命令行中输入命令:monkeyrunner monkey_playback.py test.mr,运行
5.回放完成