Android测试教程(16):monkeyrunner简介

如果你需要实现自动测试,Android的monkeyrunner 工具可以帮助你实现自动测试,它提供了一组API可以用来控制Android设备或模拟器,使用monkeyrunner,你可以编写Python 程序来安装Android应用或是测试包,运行应用或测试,发送按键消息,并可以截屏,然后保存在计算机中。monkeyrunner 主要目的是用来在应用程序或框架层次来测试应用程序或运行单元测试包,但你也可以用作其它目的。

monkeyrunner 工具包不同于UI/Application Exerciser Monkey(也称为Money),money 通过adb shell 来运行,可以模拟“猴子”随机按键或是发送系统消息给指定的应用来实现Stress 测试。

monkeyrunner API 主要通过下面三个包:

MonkeyRunner: 主要提供了monkeyrunner 应用的辅助方法以及,用来链接设备或是模拟器的方法,并提供UI支持等。

MonkeyDevice: 代表一个设备或是模拟器,提供安装,卸载应用的方法,启动一个Activity,发送按键或是Touch 事件等。

MonkeyImage: 代表一个截屏图像,可以截取不同格式的图像,比较两个MonkeyImage图像,保存图像等。

下面为一个 Python 写的monkeyrunner 应用, 因为涉及到Python 语言,这里不详细说明了

# 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')     

# sets a variable with the package's internal name
package = 'com.example.android.myapplication' 

# sets a variable with the name of an Activity in the package
activity = 'com.example.android.myapplication.MainActivity' 

# sets the name of the component to start
runComponent = package + '/' + activity     

# Runs the component
device.startActivity(component=runComponent)     

# 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')

详细的API说明请参考Android文档(http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html) ,如果你需要实现自动测试,编写测试代码,可以使用Python通过monkeyrunner API来实现。

查看全套教程:http://www.bianceng.cn/OS/extra/201301/35252.htm

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 应用
, 测试
, android5.0截屏
, monkeyrunner
, monkeyrunner无法进入
, 发送按键
, python adb
, 方法系统测试android
, The
, monkeyrunner实例
, 卸载python包
, device
android的monkey测试
,以便于您获取更多的相关知识。

时间: 2024-08-03 12:10:38

Android测试教程(16):monkeyrunner简介的相关文章

Android测试教程(9):ApplicationTestCase示例

前面介绍了Android测试的一些理论知识,从本篇开始的几篇将结合ApiDemoTest示例来介绍Android测试的实例.在此之前可 以参照Android测试教程(3):测试项目 创建ApiDemos->tests 测试项目,本项目测试用来测试ApiDemos,主要目的是介绍 Android测试框架的使用方法. 当然要测试ApiDemos,事先要创建好项目ApiDemos.下图显示了创建好ApiDemos- >Tests后,ApiDemos->Tests中所含的Java类: Andro

Android测试教程(5):第一个测试项目HelloWorldTest

本例介绍创建一个测试项目的一般步骤和编写测试用例的基本方法. 为简单起见,创建一个HelloWorld应用,带有一 个Greeting类,其定义如下: public class Greeting { private String name; public Greeting(String name){ this.name=name; } public String getGreetings(){ return "Hello," +name; } } 测试项目打算来测试这个Greeting

Android测试教程

一.  测试项目    Android的编译和测试工具需要测试项目组织符合预订的结构:分别为Test case 类,Test case 包以及测试项目. JUnit 为Android的测试的基础,一般来说,一个JUint测试为一个用来测试一个应用某一部分的语句. 你可以将多个测试Test方法组织起来构成一个测试用例(Test case),多个测试用例可以构成Test Suites . 每个Test方法相对独立,一个测试类Test class包含一组相关的Test 或其它辅助方法. 在Androi

Android测试教程(13):TestCase示例

Android 测试框架是基于JUnit的,因此对一些和平台关系不大的类,可以直接使用JUnit中的TestCase来测试. MorseCodeConverterTest 用来测试MorseCodeConverter类,MorseCodeConverter的实现和Android平台联系不大,因此 可以直接使用TestCase作为基类. TestCase 由Assert 类派生而来,Assert 提供了大量的Assert方法,用来比较期望值 和实际值. 本例代码如下: public class M

Android测试教程(8):测试Service

Android 测试框架也提供对Service测试的支持,基本类为ServiceTestCase,因为Service类通常假定和它是和Client是分开 使用的,因此你可以无需使用Instrumentation 来测试Service. 当你设计一个Service时,你应该考虑测试用例中如何检查 Service的当前状态,比如你在onCreate ,onStartCommand 中启动一个Service,一般没有一个全局变量来表示Service是否成功 ,你可能需要自己定义一个全局变量用于测试用例

Android测试教程(7):测试Content Provider

Content Provider 为不同的应用访问数据提供了统一的接口,本篇介绍Android测试包中用于测试Content Provider 的相关 知识. Android 测试包中用于测试Content Provider的基本类为ProviderTestCase2, 允许你在一个隔离环境下来测试 Content Provider. 并提供了一些Mock类如IsolatedContext ,MockContentResover 来辅助测试. 和其它测试一样,对 于Content Provide

Android测试教程(4):测试相关API

Android的测试框架相关的API主要定义在三个包中: android.test 用于编写Android测试用例 android.test.mock 定义了方便测试用的测试"桩"类 android.test.suitebuilder 运行测试用例的Test Runner类 Android 测试API 是基于JUnit 扩展而来,并添加了与Android平台相关的测试API. JUnit 你可以直接使用 JUnit中相关API编写一些和平台无关的测试用例(基于TestCase), An

Android测试教程(2):测试基础

Android测试框架(Android Testing Framework)为Android开发环境的一个组成部分,可以用来测试Android的各个方面,从 单元测试到框架测试到UI测试等. 其主要功能有: Android测试框架基于JUnit,因此可以直接使用JUnit 来测试一些与Android平台不是很相关的类,或者使用Android的JUint 扩展来测试Android组件,如果你刚开始接触Android 测试,可以先从AndroidTestCase写一些通用的测试用例,然后再写较复杂

Android测试教程(1):概述

测试也是开发过程中一个重要组成部分,Android开发环境集成一个测试框架可以用来测试Android应用的各个方面,单元测试,UI测试等. 本教程基于Android 开发教程英文版. 基本概念包括 Android测试的基础知识 Activity Testing 侧重于Activity的测试,介绍了如果使用Instrumentation 在正常Activity生命周期之外来控制Activity,然后测试Activity的特定的功能和测试UI的一些技巧. Content Provider Testi