`
chenxu_8456
  • 浏览: 41918 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

在monkeyrunner里使用Java做为脚本语言

 
阅读更多
monkeyrunner官网和很多地方都是使用的python做为脚本语言的,但是实际上monkeyrunner是支持Java做为脚本语言的,下面是对在monkeyrunner中使用Java的一些尝试,已经全部使用过是可行的,需要引入的jar包包括:
ddmlib.jar;guavalib.jar;sdklib.jar和monkeyrunner.jar
package com.test

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;

import com.aliyun.smoking.monkeyrunner.extend.ImageProcess;
import com.android.monkeyrunner.adb.AdbBackend;
import com.android.monkeyrunner.core.IMonkeyDevice;
import com.android.monkeyrunner.core.IMonkeyImage;
import com.android.monkeyrunner.core.TouchPressType;

/**
 * this class provide java code to call monkeyrunner.jar to execute test case
 * 
 * @author cx
 * 
 */
public class RunnerProxy {
	private IMonkeyDevice device;
	private AdbBackend adb;
	private static RunnerProxy instance;

	public static RunnerProxy getInstance() {
		if (instance == null) {
			instance = new RunnerProxy();
		}
		return instance;
	}

	private RunnerProxy() {
		adb = new AdbBackend();
	}

	/**
	 * this function will connect to a device, emulator or phone
	 */
	public void connect() {
		assert (adb != null);
		device = adb.waitForConnection();
	}

	/**
	 * this function clear device connect
	 */
	public void dispose() {
		if (device != null) {
			device.dispose();
			device = null;
		}
	}

	private String imageDir;

	public void setImageDir(String imageDir) {
		this.imageDir = imageDir;
	}

	public String getImageDir() {
		return imageDir;
	}

	private String logDir;

	public void setLogDir(String logDir) {
		this.logDir = logDir;
	}

	public String getLogDir() {
		return logDir;
	}

	/**
	 * this function finish touch operation
	 * 
	 * @param x
	 *            : x coordinate
	 * @param y
	 *            : y coordinate
	 */
	public void touch(int x, int y) {
		assert (device != null);
		device.shell("sendevent /dev/input/event6 3 48 1");
		device.shell("sendevent /dev/input/event6 3 53 " + x);
		device.shell("sendevent /dev/input/event6 3 54 " + y);
		device.shell("sendevent /dev/input/event6 0 2 0");
		device.shell("sendevent /dev/input/event6 0 0 0");
		device.shell("sendevent /dev/input/event6 3 48 0");
		device.shell("sendevent /dev/input/event6 0 2 0");
		device.shell("sendevent /dev/input/event6 0 0 0");
	}

	/**
	 * this function finish long touch operation
	 * 
	 * @param x
	 *            : x coordinate
	 * @param y
	 *            : y coordinate
	 */
	public void longTouch(int x, int y) {
		assert (device != null);
		device.drag(x, y, x, y, 10, 2);
	}

	/**
	 * this function finish drag from one point to another point
	 * 
	 * @param x
	 *            : x coordinate of start point
	 * @param y
	 *            : y coordinate of start point
	 * @param endX
	 *            : x coordinate of end point
	 * @param endY
	 *            : Y coordinate of end point
	 * 
	 */
	public void drag(int x, int y, int endX, int endY) {
		assert (device != null);
		device.drag(x, y, endX, endY, 10, 2);
	}

	/**
	 * this function finish type a text to view operation
	 * 
	 * @param value
	 *            : text to type in
	 */
	public void type(String value) {
		assert (device != null);
		device.type(value);
	}

	/**
	 * this function finish click a key operation
	 * 
	 * @param keyCode
	 *            : key code
	 */
	public void press(String keyCode) {
		assert (device != null);
		device.press(keyCode, TouchPressType.DOWN_AND_UP);
	}

	/**
	 * this function finish start an activity operation
	 * 
	 * @param component
	 *            : activity what to start
	 */
	public void startActivity(String component) {
		assert (device != null);
		String action = "android.intent.action.MAIN";
		Collection<String> categories = new ArrayList<String>();
		categories.add("android.intent.category.LAUNCHER");
		device.startActivity(null, action, null, null, categories,
				new HashMap<String, Object>(), component, 0);
	}

}
分享到:
评论
1 楼 wyg1989 2011-11-02  
LZ  为什么我把几个包导进去了  但是引包的时候  com.andorid.monkeyrunner.core.IMonkeyDevice 这个包引不了  不知道怎么回事啊  我的邮箱是  wangyuegang1989@163.com   QQ  339631616  能告诉我是为什么啊  谢谢了!!!

相关推荐

    monkeyrunner详细介绍以及编写简单的python脚本

    MonkeyRunner工具是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Python的程序来模拟操作控制Android设备app,测试其稳定性并通过截屏可以方便地记录出现的...

    MonkeyRunner培训简单教程

    MonkeyRunner的核心是Python编程语言,因此熟悉Python语法对于使用MonkeyRunner至关重要。 **1. Python简介** Python是一种高级、通用的编程语言,以其简洁明了的语法而著称。它支持多种编程范式,如面向对象编程...

    monkeyrunner jar包

    `monkeyrunner 需要的 包` 可能是指在使用 MonkeyRunner 进行自动化测试时,除了 `monkeyrunner.jar` 之外,可能还需要依赖的一些额外库或工具,例如用于图像处理的第三方库,或者自定义的辅助脚本和类。 总的来说...

    Android自动化测试之MonkeyRunner--从环境构建、参数讲解、脚本制作到实战技巧

    1. **编写测试脚本**:使用Python语言编写测试脚本,通过MonkeyRunner提供的API接口来控制Android设备或模拟器执行指定的操作。 2. **执行测试脚本**:通过命令行调用MonkeyRunner命令来运行测试脚本,如`...

    MonkeyRunner--从环境构建

    Python是一种广泛使用的高级编程语言,因为MonkeyRunner脚本是用Python语法编写的,所以需要有Python环境的支持。Python的安装同样需要配置环境变量,以便系统可以识别Python命令和脚本。 3. 设置环境变量。这是将...

    Ubuntu下, Eclipse中Python-interpreter配置MonkeyRunner

    首先,MonkeyRunner是Android提供的一个工具,它可以运行测试脚本,使用Python语言编写,通过控制台或网络接口与Android设备进行交互。而Eclipse是一个集成开发环境(IDE),通过安装PyDev插件,可以支持Python开发...

    MonkeyRunner需要的jar包

    2. **编写Python脚本**:MonkeyRunner使用Python作为脚本语言,编写测试脚本。脚本中可以定义函数,用于执行各种操作,如启动应用、查找视图元素、发送触摸事件等。 3. **导入所需库**:在脚本开头,需要导入...

    android monkey自动化测试改为java调用monkeyrunner Api

    众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。不过,最近发现可以用java调用monkeyrunner Api,用java语言写测试脚本。   于是,就简单研究了一下。...

    android自动化测试工具monkeyrunner总结

    Monkeyrunner使用了Jython(一种运行在Java虚拟机上的Python解释器)来实现与Android系统的交互。这意味着你可以使用Python的语法来访问Monkeyrunner API中的各种常量、类和方法。 - **MonkeyRunner**:提供了一...

    测验自己开拓的Android利用过程之monkeyrunner.docx

    - **灵活性**:Monkeyrunner允许开发者使用Python语言,创建灵活的测试脚本。 - **可视化**:通过截图功能,可以直观地查看测试过程和结果。 - **自动化程度高**:适用于长时间、重复性的测试任务,减轻手动测试...

    monkeyrunner环境搭建教程[整理].pdf

    - **Python**:一种广泛使用的高级编程语言,Monkeyrunner脚本主要使用Python编写。 - **Eclipse**:一款开源集成开发环境,支持多种编程语言,通过安装特定插件可支持Monkeyrunner脚本编辑。 #### 二、Python环境...

    安卓混合脚本测试

    在这个领域,Java语言扮演着核心角色,因为它是一种广泛用于编写自动化测试脚本的语言,且与Android平台兼容性良好。 安卓混合脚本测试的主要目标是确保应用程序在不同环境、设备和用户交互下的功能性和性能。它...

    Monekyrunner需要的JDK、SDK和完整的安装说明

    MonkeyRunner是基于Java语言的,因此需要JDK来编译和运行其Python脚本。确保你的系统已经安装了最新版本的JDK,并将其添加到系统的PATH环境变量中,这样MonkeyRunner才能找到并使用JDK。 SDK,即Android SDK,是...

    monkeyrunner环境搭建及实例教程(3)

    - 脚本语言支持Java和Python,Python的脚本编写通常更简洁灵活。 - 缺点主要是脚本移植性较差,可能需要针对不同的设备或系统版本进行调整。 3. **Monkeyrunner脚本编写** 在开始编写Monkeyrunner脚本之前,需要...

    python实现手机自动化测试.docx

    Python在手机自动化测试中的应用广泛,特别是在互联网领域,它凭借其简洁易懂的语法和丰富的库支持,成为了自动化测试的首选语言之一。本教程主要涵盖了使用Python进行手机自动化测试的基本步骤,包括JDK、SDK、...

    Android 自动化测试框架

    然而,由于脚本语言为Jython(Python的Java版本),对测试人员的技术要求较高,学习成本也较大,且执行效率相对较低。 3. UIAutomator UIAutomator是Android提供的专门用于UI测试的框架,支持所有Android事件操作。...

Global site tag (gtag.js) - Google Analytics