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. CocoaPods 安装相关问题

    (1)pod install还是pod update都卡在Analyzing dependencies不动. 解决方法: 其实原因在于以上两个命令执行时会升级CocoaPods的spec仓库,加一个参 ...

  2. BZOJ_2017_[Usaco2009 Nov]硬币游戏_博弈论+DP

    BZOJ_2017_[Usaco2009 Nov]硬币游戏_博弈论+DP Description 农夫约翰的奶牛喜欢玩硬币游戏,因此他发明了一种称为“Xoinc”的两人硬币游戏. 初始时,一个有N(5 ...

  3. Codefroces #404 Div2

    A题 分析:把多面体和面数一一对应即可 #include<iostream> #include<map> #include<cstring> #include< ...

  4. 洛谷P1999三国游戏

    题目:https://www.luogu.org/problemnew/show/P1199 仔细想想,两方都拿不到每个武将的配对中最大的: 本来想的是如果有武将a,b,对应最大ma,mb,次大ca, ...

  5. SpringBoot启动的时候不去校验数据库连接配置是否正确

    spring boot在启动的时候只会检查你是否配置了数据库连接, 而不会检测配置的是否正确 这样会出现的问题是: 只有在你使用数据库的时候才知道配置出错, 我们希望是在程序启动的时候就进行检查, 如 ...

  6. codeforces 724D

    注意到要字典序最小,从而变为水题. 从a选到z,每次必然是先看选部分当前字符x是否能满足覆盖,若不能则选上所有的字母x,不然break,输出答案. 进行26次dp即可. #include <cs ...

  7. UVa 1642 Magical GCD (暴力+数论)

    题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点 ...

  8. POJ2365【几何】

    因为给出的点已经是顺时针了, 整个长度=相邻点距离+一个圆周长: C++ac代码-G++wa-因为标准不一样.G++用f //#include <bits/stdc++.h> #inclu ...

  9. HDU 5101

    hdoj5101 lower_bound函数: 题意: 从两个不同集合拿出两个数,加的和大于k的可行的方案数 思路: 答案=从所有数中选择的两个加和大于k的数的方案数-在同一个集合中选择的两个加和大于 ...

  10. Unity3D将来时:IL2CPP(上)

    http://inpla.net/thread-8197-1-1.html Unity3D将来时:IL2CPP(上) (注:本文详细的讲述了C#,Mono,.Net, IL等Unity使用到的概念,如 ...