Android自动化测试之——MonkeyRunner(2)

一、MonkeyRunner API

MonkeyRunner API包含了三个模块在com.android.monkeyruner包中:

1、MonkeyRunner

一类用于MonkeyRunner程序的实用方法。该类提供了一种将MonkeyRunner连接到设备或仿真器的方法。它还提供了为monkeyrunner程序创建UI以及显示内置帮助的方法

2、MonkeyDevice

表示设备或仿真器。这个类提供了安装和卸载包、启动Activity、以及向app发送键盘或触摸事件的方法。您还可以使用该类运行测试包。

3、MonkeyImage

表示屏幕捕获图像。这个类提供了用于捕获屏幕、将位图图像转换为各种格式、比较两个MonkeyImage对象以及将图像写入文件的方法。

二、运行MonkeyRunner

有两种方式可以编写MonkeyRunner用例:

  • 在cmd窗口直接运行monkeyrunner
  • 使用Python编写测试代码,在CMD中执行monkeyrunner test.py运行

三、MonkeyRunner

MonkeyRunner常用方法如下

1、waitForConnect(float timeout, string deviceId)

waitForConnection ()方法返回一个MonkeyDevice对象

device = MonkeyRunner.waitForConnection(3,‘127.0.0.1:62001‘)

deviceId可通过adb devices查看

 2、sleep(float seconds)

等待时长

MonkeyRunner.sleep(5)

3、alert(string message, string title, string okTitle)

向运行当前程序的进程显示警报对话框。对话框是模态的,所以程序暂停,直到用户点击对话框的按钮。

MonkeyRunner.alert(‘TestTitle‘, ‘This is the message‘, ‘OK‘)

结果如图:

4、choice(string message, iterable choices, string title)

在运行当前程序的进程中显示一个具有选择列表的对话框。对话框是模态的,所以程序暂停,直到用户点击对话框中的一个按钮。

MonkeyRunner.choice(‘TestChoice‘, [‘choice1‘,‘choice2‘], ‘Title‘)

5、input(string message string initialValue, string title, string okTitle, string cancelTitle)

显示一个接受输入并将其返回给程序的对话框。对话框是模态的,所以程序暂停,直到用户点击对话框中的一个按钮。

对话框包含两个按钮,一个显示okTitle值,另一个显示cancelTitle值。如果用户单击OKTITE按钮,则返回输入框的当前值。如果用户单击取消标题按钮,则返回一个空字符串。

MonkeyRunner.input(‘message‘, ‘initialValue‘, ‘title‘, ‘ok‘, ‘cancel‘)

四、MonkeyDevice

通常情况下,不必创建MonkeyDevice的实例。相反,您使用MonkeyRunner.waitForConnection()从到设备或仿真器的连接创建新对象。

device = MonkeyRunner.waitForConnection(3,‘127.0.0.1:62001‘)

1、常量

Constants
string DOWN Use this with the type argument of press() or touch() to send a DOWN event.
string UP Use this with the type argument of press() or touch() to send an UP event.
string DOWN_AND_UP Use this with the type argument of press() or touch() to send a DOWN event immediately followed by an UP event.

2、常用方法:

press()、touch()、startActivity()、installPackage()、type()、drag()

方法详细如下:

Methods
void broadcastIntent (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)

Broadcasts an Intent to this device, as if the Intent were coming from an application.

void drag (tuple start, tuple end, float duration, integer steps)

Simulates a drag gesture (touch, hold, and move) on this device‘s screen.

object getProperty (string key)

Given the name of a system environment variable, returns its value for this device. The available variable names are listed in the detailed description of this method.

object getSystemProperty (string key)

. The API equivalent of adb shell getprop <key>. This is provided for use by platform developers.

void installPackage (string path)

Installs the Android application or test package contained in packageFile onto this device. If the application or test package is already installed, it is replaced.

dictionary instrument (string className, dictionary args)

Runs the specified component under Android instrumentation, and returns the results in a dictionary whose exact format is dictated by the component being run. The component must already be present on this device.

void press (string name, dictionary type)

Sends the key event specified by type to the key specified by keycode.

void reboot (string into)

Reboots this device into the bootloader specified by bootloadType.

void removePackage (string package)

Deletes the specified package from this device, including its data and cache.

object shell (string cmd)

Executes an adb shell command and returns the result, if any.

void startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)

Starts an Activity on this device by sending an Intent constructed from the supplied arguments.

MonkeyImage takeSnapshot()

Captures the entire screen buffer of this device, yielding a MonkeyImageobject containing a screen capture of the current display.

void touch (integer x, integer y, integer type)

Sends a touch event specified by type to the screen location specified by x and y.

void type (string message)

Sends the characters contained in message to this device, as if they had been typed on the device‘s keyboard. This is equivalent to callingpress() for each keycode in message using the key event type DOWN_AND_UP.

void wake ()

Wakes the screen of this device.

五、MonkeyImage

该类主要用于截图

newimage = MonkeyDevice.takeSnapshot()newimage.writeToFile(‘E:\\autoTest\\test_02.png‘,‘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‘)

# 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‘, MonkeyDevice.DOWN_AND_UP)

# Takes a screenshot
result = device.takeSnapshot()

# Writes the screenshot to a file
result.writeToFile(‘myproject/shot1.png‘,‘png‘)

原文地址:https://www.cnblogs.com/fancy0158/p/10068845.html

时间: 2024-10-12 00:13:47

Android自动化测试之——MonkeyRunner(2)的相关文章

Android自动化测试之MonkeyRunner录制和回放脚本

Android自动化测试之MonkeyRunner录制和回放脚本(十一) 分类: 自动化测试 Android自动化 2013-02-22 10:57 7346人阅读 评论(2) 收藏 举报 androidAndroidANDROIDMonkeyRecordermonkeyrunnerMonkeyRunnerMonkeyrunner 对于MonkeyRunner,有些人可能会想,既然是Android自动化测试,离不开测试脚本,那么,我们可不可以录制测试脚本呢,答案是可以的. 我们先看看以下monk

Android自动化测试之Monkeyrunner学习笔记(一)【转】

因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyrunner.Athrun.appium,目前仍在了解学习android测试框架.CTS等.本文主要为前段时间学习总结,由于刚接触不久,故本文难免会有些肤浅,大神请绕走~ [目录] 1.Monkeyrunner简介 2.Monkeyrunner工具特性 3.Monkeyrunner工具同Monkey工具的差别 4.运行Monkeyrunner 5.实例 6.学习笔记

[转] android自动化测试之MonkeyRunner使用实例(三)

一.使用CMD命令打开模拟器 运行monkeyrunner之前必须先运行相应的模拟器或连上设备,不然monkeyrunner无法连接设备. 1.1  用Elipse打开Android模拟器或在CMD中用Android命令打开模拟器. 1.2  这里重点讲一下在CMD中用Android命令打开模拟器 命令:emulator -avd test (注意:test为虚拟设备的名称——AVD的全称为:Android Virtual Device,就是Android运行的虚拟设备,如下图所示:) 上面命令

Android自动化测试之monkeyrunner工具

一.什么是monkeyrunner monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器.通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上.monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的. 二.monkeyr

Android自动化测试之——MonkeyRunner(1)

一.MonkeyRunner是什么 MonkeyRunner是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Python的程序来模拟操作控制Android设备app,测试其稳定性并通过截屏可以方便地记录出现的问题. 二.MonkeyRunner能干什么 1.多设备控制:monkeyrunner API可以跨多个设备或模拟器应用一个或多个测试套件.可以连接所有设备或同时启动所有仿真器(或两者),依次以编程方式

Android自动化测试之monkeyrunner基本要素(七)

1. #导入模块;     from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage 2. #连接当前设备,并返回一个MonkeyDevice对象;     device = MonkeyRunner.waitForConnection()     if not device:         print "Please connect a device to start!"     els

[转] Android自动化测试之MonkeyRunner录制和回放脚本(四)

测试脚本录制: 方案一: 我们先看看以下monkeyrecoder.py脚本: #Usage: monkeyrunner recorder.py #recorder.py  http://mirror.yongbok.net/linux/ ... ey_recorder.py; com.android.monkeyrunner import MonkeyRunner as mr com.android.monkeyrunner.recorder import MonkeyRecorder as 

【转】Android自动化测试之MonkeyRunner录制和回放脚本(四)

测试脚本录制: 方案一: 我们先看看以下monkeyrecoder.py脚本: #Usage: monkeyrunner recorder.py #recorder.py  http://mirror.yongbok.net/linux/ ... ey_recorder.py; com.android.monkeyrunner import MonkeyRunner as mr com.android.monkeyrunner.recorder import MonkeyRecorder as 

[转] android自动化之MonkeyRunner测试环境配置(一)

Android自动化测试之MonkeyRunner 一.Android自动化测试之环境搭建 1.1  Android-sdk介绍 ¢ SDK(Software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合.Android是google公司推出的手机开发平台.Android-sdk就是指Android专属的软件开发工具包. Android-sdk中我们最常用的就是tools和Platformtools