Android 测试 之MonkeyRunner

一、什么是MonkeyRunner

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

二、MonkeyRunner工具同Monkey工具的差别

Monkey:

Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流。

monkeyrunner:

monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。

三、MonkeyRunner的测试类型

1、多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。

2、 功能测试: monkeyrunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。

3、 回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。

4、 可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用Android Debug Bridge这样的Android工具。

四、运行MonkeyRunner

您可以直接使用一个代码文件运行monkeyrunner,抑或在交互式对话中输入monkeyrunner语句。不论使用哪种方式,您都需要调用SDK目录的tools子目录下的monkeyrunner命令。如果您提供一个文件名作为运行参数,则monkeyrunner将视文件内容为Python程序,并加以运行;否则,它将提供一个交互对话环境。

monkeyrunner的命令语法为:

monkeyrunner -plugin <plugin_jar> <program_filename> <program_options>

1. CMD对话框运行方式

如下图:

上图中,我们模拟了一次(160,450)的坐标点击和一次返回的按键点击,并分别截图:

如图可以看出,点击返回后,模拟器UI回到了主界面。

2.代码文件运行方式

(1)在$Android_Root\tools下新建一个monkeyrunnerprogram.py文件,里面内容为:

代码如下:

# Imports the monkeyrunner modules used by this program

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

# Connects to the current device, returning a MonkeyDevice object

device = MonkeyRunner.waitForConnection()

device.touch(160,450,"DOWN_AND_UP")

print "touch"

MonkeyRunner.sleep(1)

print "shoting... shot.png"

# Takes a screenshot

result = device.takeSnapshot()

filename = ‘./shot.png‘

# Writes the screenshot to a file

result.writeToFile(filename,‘png‘)

print filename

MonkeyRunner.sleep(1)

# Do some tests

# Presses the Menu button

device.press(‘KEYCODE_BACK‘,‘DOWN_AND_UP‘)

print "press BACK"

print "shoting... shot.png"

# Takes a screenshot

result = device.takeSnapshot()

filename = ‘./shot1.png‘

# Writes the screenshot to a file

result.writeToFile(filename,‘png‘)

print filename

MonkeyRunner.sleep(1)

(2)打开命令行,转到Android_Root\tools目录下,运行以下命令:

monkeyrunner monkeyrunnerprogram.py

可以达到和刚才相同的测试效果

五、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!"

else:

print "Start "

3. #安装Android包,注意,此方法返回的返回值为boolean,由此可以判断安装过程是否正常;

device.installPackage(‘myproject/bin/MyApplication.apk‘)

device.removePackage (‘com.example.android.notepad‘)

print (‘卸载成功‘)

device.installPackage(‘ApiDemos.apk‘)

print (‘安装成功‘)

4. #启动一个Activity;

device.startActivity(component=‘com.android.htccontacts/com.android.htccontacts.ContactsTabActivity‘)

5. #截图;

result = device.takeSnapshot()

result.writeToFile(‘C:\\Users\\Martin\\Desktop\\test.png‘,‘png‘)

6. #时延(秒);

MonkeyRunner.sleep(3)

7. #滑动屏幕;

for i in range(1,70):

device.drag((250,850),(250,110),0.1,10)

//开始,结束,持续时间,步骤

for i in range(1,70):

device.drag((250,110),(250,850),0.1,10)

MonkeyRunner.sleep(1)

8. #触击屏幕;

device.touch(507,72,"DOWN_AND_UP")

9. #执行adb shell命令;

device.shell("input text goup01")

按下HOME键

device.press(‘KEYCODE_HOME‘,‘DOWN_AND_UP‘)

按下BACK键

device.press(‘KEYCODE_BACK‘,‘DOWN_AND_UP‘)

按下下导航键

device.press(‘KEYCODE_DPAD_DOWN‘,‘DOWN_AND_UP‘)

按下上导航键

device.press(‘KEYCODE_DPAD_UP‘,‘DOWN_AND_UP‘)

按下OK键

device.press(‘KEYCODE_DPAD_CENTER‘,‘DOWN_AND_UP‘)

相应的按键对应的名称如下:

home键:KEYCODE_HOME

back键:KEYCODE_BACK

send键:KEYCODE_CALL

end键:KEYCODE_ENDCALL

上导航键:KEYCODE_DPAD_UP

下导航键:KEYCODE_DPAD_DOWN

左导航:KEYCODE_DPAD_LEFT

右导航键:KEYCODE_DPAD_RIGHT

ok键:KEYCODE_DPAD_CENTER

上音量键:KEYCODE_VOLUME_UP

下音量键:KEYCODE_VOLUME_DOWN

power键:KEYCODE_POWER

camera键:KEYCODE_CAMERA

menu键:KEYCODE_MENU

原文地址:https://www.cnblogs.com/mcboy/p/8963793.html

时间: 2024-11-17 07:33:09

Android 测试 之MonkeyRunner的相关文章

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

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

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

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

android测试分析1

Android测试框架,开发环境中集成的一部分,提供一个架构和强有力的工具 可以帮助测试你的应用从单元到框架的每个方面. 测试框架有这些主要特征: 1.Android测试组件基于Junit.你可以使用简单的JUnit来测试一个类,但是不用调用Android API,或者可以用Android JUnit扩展来测试Andriod部分.如果你新建了一个Android 测试模块,你可以用一个通用目标的测试单元类比如AndroidTestCase来开始,之后的话可以去使用更复杂的类. 2.Android

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

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

[转] Android自动测试之monkeyrunner工具(二)

monkeyrunner工具  前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.其它test tool等等.因接触时间很短,很多地方有不足之处,希望能和大家多多交流.   一.什么是monkeyrunner monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器.通过monke

[转] 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--google官网翻译

最近在复习之前的笔记,在回顾MonkeyRunner时看了看google官网的内容,写得不错,就翻译出来分享下.其实google官网真是一个学习的好地方. 基础知识 MonkeyRunner工具提供了一个API用于在Android代码之外控制Android设备和模拟器.通过MonkeyRunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上.monkeyrunner工具的主要设计目的是用于测试功能

Android 测试技能树

Android 测试技能树 Android 基础知识 Android 的体系结构 apk 的组成结构 adb 命令的使用 Android 的四大组件 Activity 的生命周期 - 测试/开发环境的准备 JDK 安装 SDK 安装 IDE 的使用(Eclipse/Android Studio) ddms.uiautomatorviewer.hierarchyviewer 等sdk 自带工具 windows 下cmd 命令.批处理脚本 测试关注点 功能 UI 性能 安全 体验及交互 Androi

Android自动测试之monkeyrunner工具

monkeyrunner工具  前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.其它test tool等等.因接触时间很短,很多地方有不足之处,希望能和大家多多交流.   一.什么是monkeyrunner monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器.通过monke