Monkeyrunner概述

Monkeyrunner是由Google开发、用于android系统的自动化测试工具,由android系统自带,存在于android sdk中(sdk:software development kit,软件开发工具包)
Monkeyrunner提供了一个API,用此API写出的程序可以在Android代码之外控制Android设备和模拟器。(API: Application Programming Interface 应用 程序接口)
Monkeyrunnerd主要设计目的:用于测试功能/框架水平上的应用程序和设备,或运行单元测试套件。
Monkeyrunner通过运行python脚本,来执行脚本中预先定义好的一系列操作事件,如:安装卸载某个应用、进入任一模块、点坐标、按键、编辑文本、截图对比等
 

Monkeyrunner API类别

MonkeyRunner为MonkeyRunner程序提供工具方法的类。

这个类提供了用于连接MonkeyRunner至设备或模拟器的方法。

它还提供了用于创建一个MonkeyRunner程序的用户界面以及显示内置帮助的方法。

MonkeyDevice表示一个设备或模拟器。

这个类提供了安装和卸载程序包、启动一个活动以及发送键盘或触摸事件到应用程序      的方法。您也可以用这个类来运行测试包。

MonkeyImage 表示一个截图对象。

这个类提供了截图、将位图转换成各种格式、比较两个MonkeyImage对象以及写图像到文件的方法。

Monkeyrunner特性

多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。
功能测试: monkeyrunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。
回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用Android Debug Bridge这样的Android工具
 
 
Monkeyrunner使用
1.环境配置
安装JDK:android--sdk需要在java环境及jdk下运行
解压android--sdk: 包含tools及platform-tools两文件夹,monkeyrunner存在于tools文件夹下, adb存在于platform-tools文件夹下
添加环境变量: 将tools及platform-tools的路径添加至环境变量中 
验证环境配置:cmd下分别输入java –version、monkeyrunner ,若返回版本号,则表明环境配置成功
2.MR运行

方法一:命令行输入,适用单行调试

打开cmd窗口
输入:monkeyrunner  ----启用monkeyrunner
输入:from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage               ----导入monkeyrunner API
输入:device = MonkeyRunner.waitForConnection() ----连接设备
输入:device.type(‘10010’)                  ----指定操作,输入10010
 

方法 二:将操作写入python脚本,直接运行该脚本

打开cmd窗口

输入:monkeyrunner –v  INFO + 脚本路径
 
 
3.脚本编写
 

常用语句

device.wake( )

点亮屏幕

device.type('10086')

输入10086

MonkeyRunner.sleep(3)

等待3s

device.drag((236,440),(236,300),2,10)

滑屏:起点坐标(236,440),终点坐标(236,300)

device.drag((236,440),(236,440),2,10)

长按

device.touch(170,524,'DOWN_AND_UP')

点击屏幕某处,

坐标值为(170,254)

device.press('KEYCODE_VOLUME_UP','DOWN_AND_UP')

增大音量

device.press('KEYCODE_VOLUME_DOWN','DOWN_AND_UP')

减少音量

常用语句

device.press('KEYCODE_HOME','DOWN_AND_UP')

返回主界面

device.press('KEYCODE_BACK','DOWN_AND_UP')

返回上一级菜单

device.press('KEYCODE_MENU','DOWN_AND_UP')

进入菜单页

device.press('KEYCODE_CALL','DOWN_AND_UP')

进入拨号页或点按拨号键

device.press('KEYCODE_DPAD_UP','DOWN_AND_UP')

向上移动光标

device.press('KEYCODE_DPAD_DOWN','DOWN_AND_UP')

向下移动光标

device.press('KEYCODE_DPAD_LEFT','DOWN_AND_UP')

向左移动光标

device.press('KEYCODE_DPAD_RIGHT','DOWN_AND_UP')

向右移动光标

安装Python或Ulipad:用于查看、编写monkeyrunner脚本,Ulipad更直观、方便

运行recorder.py,利用monkeyrunner的录制功能编写脚本

Monkeyrunner介绍的更多相关文章

  1. Android自动化测试 - MonkeyRunner(一)介绍

    MonkeyRunner介绍: MonkeyRunner是Google提供的一个基于坐标点的Android黑盒自动化测试工具. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用 ...

  2. MonkeyRunner测试工具小结

    一.MonkeyRunner介绍: MonkeyRunner是Google提供的一个基于坐标点的Android黑盒自动化测试工具.Monkeyrunner工具提供了一套API让用户/测试人员来调用,调 ...

  3. Android初体验之Monkey和MonkeyRunner

    原文地址https://blog.csdn.net/mad1989/article/details/38087737 Monkey 什么是Monkey Monkey是Android中的一个命令行工具, ...

  4. Monkey、Monkeyrunner之间的区别

    Monkey.Monkeyrunner之间的区别 一.Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输 ...

  5. MonkeyRunner——Mac

    1. MonkeyRunner介绍: Android的SDK中集成了三个可用来进行自动化测试的工具:Monkey.MonkeyRunner和Robotium.这三个测试工具都是基于黑盒测试. Monk ...

  6. Android的Monkey和MonkeyRunner

    本文部分解释性语段摘自网络百科或其它BLOG,语句内容网络随处可见,也不知道谁是初始原创,便不再署名出处,如有雷同,还请见谅. Monkey 什么是Monkey Monkey是Android中的一个命 ...

  7. MonkeyRunner+Python自动化测试一

    MonkeyRunner介绍 1.monkeyrunner 工具提供了一个 API,用于编写可从 Android 代码外部控制 Android 设备或模拟器的程序.使用 monkeyrunner,您可 ...

  8. 常见Android测试工具简介

    在进行android设备测试过程中,在进行系统测试时候,往往需要关注到很多方面,导致一个崩溃或者运行一段时间自动重启或者停止的问题很多.最简单来看,影响因素就有:底层硬件设备.OS层.上层app层.另 ...

  9. App测试工具大全,收藏这篇就够了

    随着移动互联网的高速发展,App 应用非常火,测试工程师也会接触到各种 app 应用.除了人工测试之外,也可以通过一些测试工具来提高我们的测试效率,以下对于我用过或听过的 app 测试工具做了一个统一 ...

随机推荐

  1. 【opencv】opencv在图片、视频嵌中英文字符的方法

    转自:http://www.cnblogs.com/hujingshuang/p/5119015.html 说明:本博文是根据前人已有的成果并结合自己的理解而成的.为了避免让读者感到繁琐,我将运用小学 ...

  2. VMware Ubuntu 共享文件夹

    /**************************************************************************** * VMware Ubuntu 共享文件夹 ...

  3. AJAX如何传递json对象给后端

    如果页面上一直报错,根本没有触发异步请求的话,首先就要检查接口或者路径是否写对或者写全,在去考虑是否跨境的问题. 如果想要给后端传递一个json对象,需要在路径上一句添加content:applica ...

  4. 《Eye In-Painting with Exemplar Generative Adversarial Networks》论文阅读笔记

    Abstract 基于conditional GAN使用隐藏在reference image中的exemplar information生成high-quality,personalized in-p ...

  5. YARN(MapReduce 2)运行MapReduce的过程-源码分析

    这是我的分析,当然查阅书籍和网络.如有什么不对的,请各位批评指正.以下的类有的并不完全,只列出重要的方法. 如要转载,请注上作者以及出处. 一.源码阅读环境 需要安装jdk1.7.0版本及其以上版本, ...

  6. 简单聊聊ES6-Promise和Async

    前言 本篇博文出至于我的github仓库:web-study,如果你觉得对你有帮助欢迎star,你们的点赞是我持续更新的动力,谢谢! 异步编程在前端开发中尤为常见,从最早的XHR,到后来的各种封装aj ...

  7. POJ2366【二分】

    题意: 给两个序列,问两个序列中是否有两个数加起来=1e4: 思路: 直接先排序好b序列,然后枚举a序列,二分查找b序列就好了: 贴一发挫code-. //#include <bits/stdc ...

  8. Luogu P1463 [POI2002][HAOI2007]反素数【数论/dfs】By cellur925

    题目传送门 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1 ...

  9. (十)SpringBoot的文件上传

    一:添加commons-fileupload依赖 打开pom文件添加 <dependency> <groupId>commons-fileupload</groupId& ...

  10. 题解报告:zoj 3261 Connections in Galaxy War(离线并查集)

    Description In order to strengthen the defense ability, many stars in galaxy allied together and bui ...