1.使用Monkeyrunner脚本命令时,需要导入模块才能使用模块的脚本命令,Monkeyrunner的常用模块有

  • MonkeyRunner,MonkeyDevice,MonkeyImage,MonkeyRecorder
  • MonkeyRunner:等待连接设备,与模拟器链接,返回monkeydevice对象,代表链接的设备
  • MonkeyDevice:用来控制一个Android设备或模拟器。 方法发送UI事件, 检索信息,安装和删除应用程序,并运行应用程序
  • MonkeyImage:monkeyrunner类来保存图像设备或模拟器的屏幕。 图像从屏幕缓冲区复制在一个屏幕截图。这允许你对象的方法 将图像转换为各种存储格式,写图像到一个文件,复制的部分图像
  • MonkeyRecorder:允许用户自由录制需要的脚本,录制和回放,或者获取坐标

导入这些模块的语句为:

from com.android.monkeyrunner import 模块名

也可以为每个模块设置别名,设置别名后,后续使用的脚本使用到模块名都是使用别名:from com.android.monkeyrunner import 模块名 as 别名

以上模块导入的语句为:

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice  as md
from com.android.monkeyrunner import MonkeyImage as mi
from com.android.monkeyrunner.recorder import MonkeyRecorder as mre

如果全部导入的话,也可以直接使用一条语句:from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice ,MonkeyImage,MonkeyRecorder

2.基础命令

(1)模块导入之后,开始连接模拟器的安卓设备或者真机设备进行测试,

连接设备:device=MonkeyRunner.waitForConnection(超时时间,设备名)

(2)设备连接成功后,安装需要测试的apk,参数为apk的路径

device.installPackage('apk路径')

如果需要删除卸载某些apk,则可以使用命令:device.removePackage('apk路径')

(3)设备连接后,可以用命令启动任意的Activity:device.startActivity(component="包名/Activity名")

例如,已知启动页的Activity名,则可以用命令打开软件的启动页。

(4)在使用命令中,有时要缓冲下等待某个操作加载完,可以使用命令:MonkeyRunner.sleep(秒数,浮点数),例如MonkeyRunner.sleep(3)等待3秒

(5)测试过程中,如果需要进行截图并且将截图保存起来:

result=device.takeSnapshot() //截图

result.writeToFile('写入的文件名\\截图命名','截图的格式例如jpg等') //保存截图

(6)在文本框中输入内容可以先定位写入的地方,然后写入内容

device.touch(横坐标,纵坐标) //定位文本框位置

device.type(‘字符串’)//写入内容

(7)滑动屏幕:MonkeyRunner.drag(开始坐标,结束坐标,方向,滑动步数)

例如,向左滑动一步,0.1为时间:MonkeyRunner.drag((200,300),(100),0.1,1)

(8)按键:device.press()例如按手机的Home键,device.press("KEYCODE_HOME")

点击:device.touch()

其参数的值有:DOWN,UP,DOWN_AND_UP

例如已知某个按钮的横纵坐标,便可以进行点击操作:device.touch(100,200,"DOWN_AND_UP")

(9)如果屏幕黑屏,可以唤醒屏幕:device.wake()

3.录制回放脚本

录制和回放需要两个脚本文件monkey_recorder.py和monkey_playback.py,所以需要导入我们第一点说的MonkeyRecorder的模块,导入后

  • 录制

开始录制:recorder.start(device)

执行脚本:monkeyrunner  monkey_recorder.py

打开的录制界面的工具栏:

功能如下:

wait:等待时间设置

press a button:点击按钮

Type Something:文本框输入

Fling:滑动

Export Actions:导出脚本

Refresh Display:刷新

  • 回放

回放脚本的命令:monkeyrunner  monkey_playback.py  录制的脚本文件名.mr

录制后将导出的脚本存放在monkeyrunner的文件夹即sdk/tools文件中,方便使用

Monkeyrunner命令的更多相关文章

  1. [Android]官网《monkeyrunner》中文翻译

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5050768.html 翻译自 Android Develope ...

  2. Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例

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

  3. Android自动化测试之Monkeyrunner学习笔记(一)

    Android自动化测试之Monkeyrunner学习笔记(一) 因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyr ...

  4. android自动化之monkeyrunner

    一.使用CMD命令打开模拟器 运行monkeyrunner之前必须先运行相应的模拟器或连上设备,不然monkeyrunner无法连接设备. 1.1  用Elipse打开Android模拟器或在CMD中 ...

  5. Android自动化测试中Monkeyrunner详解

    之前有写过monkey测试详细说明,几天就说说monkeyrunner. monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器 ...

  6. Android自动化压力测试快速入门教程(图解)——MonkeyRunner

    一.MonkeyRunner测试环境配置(转自) 1.  android-sdk 下载地址:http://www.android-doc.com/sdk/index.html 下载完成后,只需要解压就 ...

  7. [转] android自动化测试之MonkeyRunner使用实例(三)

    一.使用CMD命令打开模拟器 运行monkeyrunner之前必须先运行相应的模拟器或连上设备,不然monkeyrunner无法连接设备. 1.1  用Elipse打开Android模拟器或在CMD中 ...

  8. [转] Android自动测试之monkeyrunner工具(二)

    monkeyrunner工具  前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyru ...

  9. 【转】android自动化测试之MonkeyRunner使用实例(三)

    一.使用CMD命令打开模拟器 运行monkeyrunner之前必须先运行相应的模拟器或连上设备,不然monkeyrunner无法连接设备. 1.1  用Elipse打开Android模拟器或在CMD中 ...

随机推荐

  1. Java基础教程(1)--概述

    一.什么是Java语言   Java是于1996年由Sun公司发布的一种极富创造力的面向对象的程序设计语言.它不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java ...

  2. centos ssh远程登陆

    登录Centos6.5系统. ◆示例:使用root用户登录. 注:若为非root用户登录,输入执行某些命权限不够时需加sudo.   查看SSH是否安装. ◆输入命令:rpm -qa | grep s ...

  3. scrum 项目的基本模式

    scrum 项目中有 3 个主要的角色:产品所有者, Scrum 主管和团队成员 产品所有者和团队其他成员一起工作,负责维护生产积压工作表 (production backlog) ,并对表中的项制定 ...

  4. hdu 1159(DP+字符串最长公共序列)

    http://blog.csdn.net/a_eagle/article/details/7213236 公共序列可以用一个二维数组dp[i][j]保存每个点时的最大数字,本质就是一个双向比较. dp ...

  5. ES6学习笔记(二)-字符串的扩展

    一.字符的 Unicode 表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点. 表示法只限于码点在\u0000~\uFFFF之间的字符, ...

  6. PoPo数据可视化周刊第4期

    PoPo数据可视化 聚焦于Web数据可视化与可视化交互领域,发现可视化领域有意思的内容.不想错过可视化领域的精彩内容, 就快快关注我们吧 :) 微信号:popodv_com   由于国庆节的原因,累计 ...

  7. Web Api ——创建WebAPI

    方法在Win10 + VS2017(MVC5)测试通过 1.建立 WebApi项目: 选择菜单 “文件->新建醒目->web ->ASP.NET Web 应用程序” 输入项目名称和位 ...

  8. Vue 框架-01- 入门篇 图文教程

    Vue 框架-01- 入门篇 图文教程 Vue 官网:https://cn.vuejs.org/ 关于 Vue 的基础大家可以在官网的[起步]去学习,本系列文章主要针对实例项目应用 一.Vue 的安装 ...

  9. MUI框架-03-自定义MUI控件样式

    MUI框架-03-自定义MUI控件样式 开发请查阅:官方文档:http://dev.dcloud.net.cn/mui/ui/ 如何自定义MUI控件样式 mui 以 iOS 7的 UI 为基础,补充了 ...

  10. weixin设置菜单

    https://jingyan.baidu.com/article/925f8cb8dfcf11c0dce05661.html