帮助文档的目录
file:///E:/android/android-sdk-windows/docs/guide/developing/tools/monkeyrunner_concepts.html
The monkeyrunner tool provides an API for writing programs that control an Android device or emulator from outside of Android code. With monkeyrunner, you can write a Python program that installs an Android application or test package, runs it, sends keystrokes to it, takes screenshots of its user interface, and stores screenshots on the workstation. The monkeyrunner tool is primarily designed to test applications and devices at the functional/framework level and for running unit test suites, but you are free to use it for other purposes.
monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。
The monkeyrunner tool is not related to the UI/Application Exerciser Monkey, also known as the monkey tool. The monkey tool runs in an adb shell directly on the device or emulator and generates pseudo-random streams of user and system events. In comparison, the monkeyrunner tool controls devices and emulators from a workstation by sending specific commands and events from an API.
monkeyrunner工具与用户界面/应用程序测试工具,也称为monkey工具并无关联。monkey工具直接运行在设备或模拟器的adbshell中,生成用户或系统的伪随机事件流。而monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。
The monkeyrunner tool provides these unique features for Android testing:
monkeyrunner工具为Android测试提供了以下特性:
Multiple device control: The monkeyrunner API can apply one or more test suites across multiple devices or emulators. You can physically attach all the devices or start up all the emulators (or both) at once, connect to each one in turn programmatically, and then run one or more tests. You can also start up an emulator configuration programmatically, run one or more tests, and then shut down the emulator.
多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。
Functional testing: monkeyrunner can run an automated start-to-finish test of an Android application. You provide input values with keystrokes or touch events, and view the results as screenshots.
功能测试: monkeyrunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。
Regression testing - monkeyrunner can test application stability by running an application and comparing its output screenshots to a set of screenshots that are known to be correct.
回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
Extensible automation - Since monkeyrunner is an API toolkit, you can develop an entire system of Python-based modules and programs for controlling Android devices. Besides using the monkeyrunner API itself, you can use the standard Python os and subprocess modules to call Android tools such as Android Debug Bridge.
可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用如adb这样的Android工具 。
You can also add your own classes to the monkeyrunner API. This is described in more detail in the section Extending monkeyrunner with plugins.
您还可以向monkeyrunner API中添加您自己的类。我们将在使用插件扩展monkeyrunner一节中对此进行详细讨论 。
The monkeyrunner tool uses Jython, a implementation of Python that uses the Java programming language. Jython allows the monkeyrunner API to interact easily with the Android framework. With Jython you can use Python syntax to access the constants, classes, and methods of the API.
monkeyrunner工具使用Jython(使用Java编程语言的一种Python实现)。Jython允许monkeyrunnerAPI与Android框架轻松的进行交互。使用Jython,您可以使用Python语法来获取API中的常量、类以及方法。
A Simple monkeyrunner Program
一个简单的monkeyrunner程序实例
Here is a simple monkeyrunner program that connects to a device, creating a MonkeyDevice object. Using the MonkeyDevice object, the program installs an Android application package, runs one of its activities, and sends key events to the activity. The program then takes a screenshot of the result, creating a MonkeyImage object. From this object, the program writes out a .png file containing the screenshot.
以下为一个简单的monkeyrunner程序,它将会连接到一个设备,创建一个MonkeyDevice对象。使用MonkeyDevice对象,程序将安装一个Android应用包,运行其中一个活动,并向其发送按键事件。程序接下来会将结果截图,创建一个MonkeyImage对象,并使用这个对象截图将保存至.png文件。
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()
# Installs the Android package. Notice that this method returns a boolean, so you can test
# to see if the installation worked.
device.installPackage('myproject/bin/MyApplication.apk')
# Runs an activity in the application
device.startActivity(component='com.example.android.myapplication.MainActivity')
# Presses the Menu button
device.press('KEYCODE_MENU','DOWN_AND_UP')
# Takes a screenshot
result = device.takeSnapShot
# Writes the screenshot to a file
result.writeToFile('myproject/shot1.png','png')
# 导入此程序所需的monkeyrunner模块
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# 连接当前设备,返回一个MonkeyDevice对象
device = MonkeyRunner.waitForConnection()
# 安装Android包,注意,此方法返回的返回值为boolean,由此您可以判断安装过程是否正常
device.installPackage('myproject/bin/MyApplication.apk')
# 运行此应用中的一个活动 device.startActivity(component='com.example.android.myapplication.MainActivity')
# 按下菜单按键
device.press('KEYCODE_MENU','DOWN_AND_UP')
# 截取屏幕截图
result = device.takeSnapShot
# 将截图保存至文件
result.writeToFile('myproject/shot1.png','png')
The monkeyrunner API
The monkeyrunner API is contained in three modules in the package com.android.monkeyrunner:
monkeyrunnerAPI于com.android.monkeyrunner包中包含三个模块:
MonkeyRunner: A class of utility methods for monkeyrunner programs. This class provides a method for connecting monkeyrunner to a device or emulator. It also provides methods for creating UIs for a monkeyrunner program and for displaying the built-in help.
MonkeyDevice: Represents a device or emulator. This class provides methods for installing and uninstalling packages, starting an Activity, and sending keyboard or touch events to an application. You also use this class to run test packages.
MonkeyImage: Represents a screen capture image. This class provides methods for capturing screens, converting bitmap images to various formats, comparing two MonkeyImage objects, and writing an image to a file.
MonkeyRunner:一个为monkeyrunner程序提供工具方法的类。这个类提供了用于连接monkeyrunner至设备或模拟器的方法。它还提供了用于创建一个monkeyrunner程序的用户界面以及显示内置帮助的方法。
MonkeyDevice:表示一个设备或模拟器。这个类提供了安装和卸载程序包、启动一个活动以及发送键盘或触摸事件到应用程序的方法。您也可以用这个类来运行测试包。
MonkeyImage:表示一个截图对象。这个类提供了截图、将位图转换成各种格式、比较两个MonkeyImage对象以及写图像到文件的方法。
In a Python program, you access each class as a Python module. The monkeyrunner tool does not import these modules automatically. To import a module, use the Python from statement:
在python程序中,您将以Python模块的形式使用这些类。monkeyrunner工具不会自动导入这些模块。您必须使用类似如下的from语句:
from com.android.monkeyrunner import <module>
fromcom.android.monkeyrunner import
where <module> is the class name you want to import. You can import more than one module in the same from statement by separating the module names with commas.
其中,为您想要导入的类名。您可以在一个from语句中导入超过一个模块,其间以逗号分隔。
分享到:
相关推荐
用于测试Android计算器,适合初学monkeyrunner测试脚本编写者
1. **Monkeyrunner基础** Monkeyrunner基于Python,因此编写Monkeyrunner脚本实质上就是编写Python代码。它提供了几个核心类,如`Device`和`ImageComparator`,以及一系列API,用于与Android设备交互。例如,`...
MonkeyRunner工具和Monkey工具都是Android系统提供的用于进行自动化测试的命令行工具,但它们的应用方式和目的存在一定的差异。 首先我们来理解Monkey工具。Monkey是一个命令行工具,它可以运行在Android的模拟器...
### Android自动化测试MonkeyRunner详解 #### 一、MonkeyRunner简介 MonkeyRunner是Android SDK中一个强大的自动化测试工具,它提供了一套API来控制Android设备或模拟器。通过编写Python脚本,用户可以实现诸如...
android自动化测试monkeyrunner的入门使用教程,讲解了如何使用monkeyrunner进行android的自动化测试
lowen 基于monkeyrunner的android应用的自动化测试,并输出测试结果到html的框架 仿腾讯utest测试框架 代码有待完善,欢迎有兴趣的朋友一起讨论(目前报表里面使用echarts部分没有写数据处理逻辑,框架已搭好) ...
MonkeyRunner是Android SDK中一个强大的自动化测试工具,它允许开发者编写Python脚本来控制Android设备或模拟器,并进行各种UI操作,如触摸、滑动、点击等。这个名为"monkeyrunner录制回放文件.rar"的压缩包包含两个...
1. **启动模拟器**: 在命令行中切换到Android SDK的`tools`目录,输入`monkeyrunner`命令进入Shell命令交互模式。 2. **导入Monkeyrunner模块**: 在Shell中输入以下代码来导入必要的Monkeyrunner模块: ```python ...
总的来说,monkeyrunner为Android自动化测试提供了一种强大的工具,它能够灵活地处理多种测试场景,通过编写Python脚本实现对Android设备的全面控制,简化了测试流程,提高了测试效率。对于大型项目或持续集成环境,...
MonkeyRunner脚本生成工具是一种Android自动化测试框架,它允许开发者编写Python脚本来控制设备或模拟器,进行应用程序的UI测试。这个工具对于大型项目和持续集成环境尤其有用,因为它可以大大提高测试效率,减少...
1. **Monkeyrunner的基本概念** - **Monkeyrunner API**:Monkeyrunner的核心是一组Python接口,这些接口提供了对Android设备的直接访问,包括安装应用、发送事件、截图等操作。 - **Jython**:Monkeyrunner基于...
【Android自动测试之monkeyrunner工具】是Android平台上用于自动化测试的一种工具,它提供了一套Python API,使得开发者能够在PC上编写脚本,控制Android设备或模拟器进行测试操作。Monkeyrunner不仅适用于应用的...
MonkeyRunner是Android SDK提供的一种工具,用于编写和执行对Android设备或模拟器的自动化测试。这个工具通过Python脚本来控制设备,进行各种用户交互,如点击、滑动、输入文本等,从而实现对应用程序的系统级测试。...
Monkeyrunner 是 Android SDK 中的一个自动化测试工具,它提供了一个基于 Python 的接口,允许开发者编写脚本来控制设备或模拟器的行为,进行功能测试、性能测试或任何其他自动化任务。这个工具对于开发者来说非常...
1. **多设备控制**:通过Monkeyrunner API可以同时控制多个Android设备或模拟器执行相同的测试脚本。这种测试方式非常适合进行大规模的测试任务,确保应用在不同设备上都能正常工作。 2. **功能测试**:可以编写脚...
1. `app-debug.apk`:这是一个Android应用的APK文件,通常用于安装到设备或模拟器上进行测试。`debug`表示这是调试版本,包含更多的调试信息,便于开发者进行问题排查。 2. `monkey.mr`:这是MonkeyRunner的脚本...
MonkeyRunner是一种强大的自动化测试工具,主要用于Android设备或模拟器上的应用程序测试。它基于Python语言,能够轻松地与Android框架进行交互,实现各种复杂的测试场景。 **1. 多设备控制** MonkeyRunner支持...
Monkeyrunner 是一个由 Android SDK 提供的工具,用于自动化测试 Android 应用程序。它基于 Python,允许开发者编写脚本来控制设备或模拟器的行为,并与应用程序进行交互。本篇文章将详细讲解 Monkeyrunner 的环境...