monkeyrunner为我们提供了录制 回放的功能。

录制与回放使用原因:实际项目,需求变更频繁,且测试任务多,我们没有足够时间去写测试脚本,这是就可以进行录制脚本,然后通过回放,跑完需要的流程。

一、前提条件

1.Windows运行环境

2.android sdk安装并已配置好环境

3.手机或模拟器已连接电脑

二、MonkeyRecorder启动

1.方式一:直接在monkeyrunner交互命令行输入以下4条命令:

  1. from com.android.monkeyrunner import MonkeyRunner as mr
  2. from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder
  3. device = mr.waitForConnection(5,'127.0.0.1:62001')
  4. 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代码如下:

  1. import sys
  2. from com.android.monkeyrunner import MonkeyRunner
  3.  
  4. CMD_MAP = {
  5. "TOUCH": lambda dev, arg: dev.touch(**arg),
  6. "DRAG": lambda dev, arg: dev.drag(**arg),
  7. "PRESS": lambda dev, arg: dev.press(**arg),
  8. "TYPE": lambda dev, arg: dev.type(**arg),
  9. "WAIT": lambda dev, arg: MonkeyRunner.sleep(**arg)
  10. }
  11.  
  12. #Process a single file for the specified device.
  13. def process_file(fp, device):
  14. for line in fp:
  15. (cmd, rest) = line.split("|")
  16. try:
  17. rest = eval(rest)
  18. except:
  19. print ("unable to parse options")
  20. continue
  21.  
  22. if cmd not in CMD_MAP:
  23. print ("unknown command: " + cmd)
  24. continue
  25.  
  26. CMD_MAP[cmd](device, rest)
  27.  
  28. def main():
  29. file = sys.argv[1]
  30. fp = open(file, "r")
  31.  
  32. device = MonkeyRunner.waitForConnection()
  33.  
  34. process_file(fp, device)
  35. fp.close();
  36.  
  37. if __name__ == "__main__":
  38. main()

monkey_playback.py

4.在cmd命令行中输入命令:monkeyrunner monkey_playback.py test.mr,运行

5.回放完成

monkeyrunner之录制与回放(七)的更多相关文章

  1. Android自动化学习笔记之MonkeyRunner:MonkeyRunner的录制和回放

    ---------------------------------------------------------------------------------------------------- ...

  2. 【monkeyrunner】monkeyrunner脚本录制和回放

    脚本录制 1.连接你已经打开调试模式的ANDROID设备或模拟器,输入adb devices 2.运行录制脚本.在cmd窗口输入 monkeyrunner recorder.py #recorder. ...

  3. monkeyrunner脚本录制和回放下载

    链接:https://pan.baidu.com/s/1Kye_E9u_WXeppFMlLhr_Cg 提取码:2coy

  4. Android自动化测试之MonkeyRunner录制和回放脚本

    Android自动化测试之MonkeyRunner录制和回放脚本(十一) 分类: 自动化测试 Android自动化 2013-02-22 10:57 7346人阅读 评论(2) 收藏 举报 andro ...

  5. Monkeyrunner 录制脚本&回放

    本文主要解释如何使用monkeyrunner来实现脚本的录制和回放 一:准备条件 在电脑端配置 Android SDK环境   java 环境 下载好 SDK后添加环境变量   E:\android- ...

  6. IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序

    前言:还是看了一下国外的入门IOS文章:<Create a Simple App for Video Recording and Playback>,主要涉及视频录制和回放的功能的基本实现 ...

  7. Unity-Animator深入系列---录制与回放

    回到 Animator深入系列总目录 Animator自带了简单的动画录制,回放功能.但可惜的是不支持持久化的数据输出.因而不能作为录像保存 不过这种可以作为竞速,格斗类游戏在结束时经常出现的游戏回放 ...

  8. TinyTask Portable(录制和回放电脑操作过程)

    一直想找个软件,可以回放自己或他人编码的过程.我认为,只有亲眼看到别人是怎么做的,才能更好的了解他人的思路. 虽然找到http://thecodeplayer.com/这个,但它只能回放它上面的代码, ...

  9. ROS_Kinetic_13 ROS数据录制与回放

    ROS_Kinetic_13 ROS数据录制与回放 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/Recording%20and%20playing%20back ...

随机推荐

  1. C#获得MAC地址(网卡序列号)代码

    代码如下: //获得网卡序列号 //MAc地址 http://www.cnblogs.com/sosoft/ public string GetMoAddress() { string MoAddre ...

  2. Post方式打开新窗口

    最近在做一个跟ERP相连的领料网站,用到POST的方法打开新窗口来打印报表 代码转别人的,在这里记一下: javascript代码 function openPostWindow(url, data1 ...

  3. C# 管理员身份运行程序

    在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须以管理员身份运行才会执行成功,否则无效果或提示错误. 比如在通过winform程序执行cmd命令时,某些情况 ...

  4. C# 将DataTable数据源转换成实体类

    using System; using System.Collections.Generic; using System.Data; using System.Reflection; /// < ...

  5. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(一)

    (一)前言 本文主要介绍了实践部署AzurePack的Website Cloud的过程.在部署之前, 首先要对AzurePack有个基本的了解.   Azure Pack是微软的私有云方案,具有弹性. ...

  6. 在Windows Server 2012 R2的Hyper-V中设置虚拟机启用增强会话模式

    在Windows Server 2012 R2的Hyper-V中,可以为虚拟机提供一种全新的连接方式,就是“增强会话模式”,它将让您更加方便的对虚拟机进行操作,比如分辨率的调整.设备的加载,最为方便的 ...

  7. 【nodejs笔记4】搭建多人博客<内含http请求的get post方法区别>

    功能分析 博客具有四个功能:注册  登录  登出  发表文章 界面设计 未登录: [主页  注册页  登录页] [主页] 主页 左侧 HOME                             ...

  8. 自从升级到macOS后,整个人都不好了

    电脑一直莫名的随机卡死,各种软件都出现了一些崩溃和不稳定的情况. Siri就是个笑话,启用后就开始索引本地硬盘,不管你有没有正在工作:直到你启动Siri,会暂停一下,然后就算是你开在哪不动,过两分钟, ...

  9. entityframework学习笔记--004-无载荷与有载荷关系

    1.无载荷(with NO Payload)的多对多关系建模 在数据库中,存在通过一张链接表来关联两张表的情况.链接表仅包含连接两张表形成多对多关系的外键,你需要把这两张多对多关系的表导入到实体框架模 ...

  10. WPF 数据绑定 1_1 基础知识&绑定到元素属性

    A.数据绑定基础: 数据源对象:WPF将从该对象中提取信息,交由目标对象进行显示. 目标对象:从数据源中提取信息,并赋给该对象的属性. B.绑定到元素属性 最简单的绑定情形则是将一个源对象指定为一个W ...