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的录制功能编写脚本

转载于:https://www.cnblogs.com/ccxniit2004/p/3616705.html

Monkeyrunner介绍相关推荐

  1. MonkeyRunner详解

    MonkeyRunner 介绍 monkey是直接运行在设备的adb shell中的一个工具 monkeyRunner工具给提供了一些API,可以通过调用这些API编写python脚本实现自动化测试: ...

  2. monkeyrunner java_Android性能测试工具MonkeyRunner使用指南

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

  3. 一篇文章带你了解,App 测试工具

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

  4. 超全的App 测试工具大全,收藏这篇就够了【附带官网|GitHub地址】

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

  5. 安卓应用测试MonkeyMonkeyScriptMonkeyRunnerpyhton性能工具脚本

    目录 一.安装Android SDK 1.1  mac安装Android SDK 1.1.1  方式一:下载 Android SDK 1.1.2  方式二:使用brew 安装 Android SDK ...

  6. 跟测试老兵3天成为APP高手(二)

    今天继续第二天的分享. (六)ADB安卓调试桥使用 ADB的全称为Android Debug Bridge,安卓调试桥.如安装软件.卸载软件.系统升级.运行shell命令等.adb就是连接Androi ...

  7. 20小时上手移动端自动化测试-张璇-专题视频课程

    20小时上手移动端自动化测试-413人已学习 课程介绍         基于移动端手工测试已经不能满足大多数企业的需求,越来越注重移动App的自动化测试,课程旨在帮助学员掌握移动端理论,Android ...

  8. Monkeyrunner安装以及介绍

    转载:https://www.cnblogs.com/lynn-li/p/5885001.html  Monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控 ...

  9. MonkeyRunner实例及使用说明

    文章转自: http://www.ishow.me/2013/02/06/1035/.html 了解了MonkeyRunner,现在上一个简单的实例(理论支持所有Android设备^_^),向左滑动屏 ...

  10. MonkeyRunner的使用二

    MonkeyRunner可以用来做自动化测试,在Android中做动态分析的时候也可以使用它来做行为触发. 不过感觉使用MonkeyRunner来做行为触发还是很局限的.就比如我想实现外界向模拟器拨打 ...

最新文章

  1. prototype.js 让你更深入的了解javascript的面向对象特性
  2. 第一次使用OD和IDA动静结合找出软件的注册算法
  3. 有些文档,本来想整理整理贴出来,
  4. C++ placement new使用
  5. JavaWeb学习之Servlet(三)----Servlet的映射匹配问题、线程安全问题
  6. buffer正确的拼接方式
  7. button执行onclick函数_JavaScript 函数定义与调用
  8. 竞品分析报告模板----笔记2
  9. 【Web笔记】Html学习手册
  10. CAD如何绘制固定面积的矩形
  11. android手机解锁root,安卓手机root权限后,会解锁什么强大的功能?
  12. Python ---------列表 集合 字典 深浅拷贝
  13. 文通Windows CE平台车牌识别
  14. 微信接口昵称在服务器乱码,微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...
  15. shell脚本实现批量解析域名IP地址(支持多DNS)
  16. 网页开发的一些尺寸单位
  17. 1032. 挖掘机技术哪家强
  18. 计算机桌面怎么突然变大了,电脑屏幕突然变大了怎么办
  19. 影响新零售商城系统直播带货的四大因素
  20. 关于Virtual clock

热门文章

  1. listenfd ---- accept事件
  2. 设计模式---模板模式(C++实现)
  3. MacOs中Docker与宿主机网络互通问题解决
  4. airpods pro是按压还是触摸_AirPods Pro入手开箱 稍后补充使用感受
  5. Spring定时任务@Scheduled提前一秒执行
  6. adb卸载手机内置软件
  7. Android配置使用SQLite3
  8. mysql脚本之家_详细讲述MySQL中的子查询操作 (来自脚本之家)
  9. 【渝粤教育】国家开放大学2018年秋季 2332T高等数学基础 参考试题
  10. [渝粤教育] 西南科技大学 机械工程测试技术 在线考试复习资料