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);
}
}
分享到:
相关推荐
MonkeyRunner工具是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Python的程序来模拟操作控制Android设备app,测试其稳定性并通过截屏可以方便地记录出现的...
MonkeyRunner的核心是Python编程语言,因此熟悉Python语法对于使用MonkeyRunner至关重要。 **1. Python简介** Python是一种高级、通用的编程语言,以其简洁明了的语法而著称。它支持多种编程范式,如面向对象编程...
`monkeyrunner 需要的 包` 可能是指在使用 MonkeyRunner 进行自动化测试时,除了 `monkeyrunner.jar` 之外,可能还需要依赖的一些额外库或工具,例如用于图像处理的第三方库,或者自定义的辅助脚本和类。 总的来说...
1. **编写测试脚本**:使用Python语言编写测试脚本,通过MonkeyRunner提供的API接口来控制Android设备或模拟器执行指定的操作。 2. **执行测试脚本**:通过命令行调用MonkeyRunner命令来运行测试脚本,如`...
Python是一种广泛使用的高级编程语言,因为MonkeyRunner脚本是用Python语法编写的,所以需要有Python环境的支持。Python的安装同样需要配置环境变量,以便系统可以识别Python命令和脚本。 3. 设置环境变量。这是将...
首先,MonkeyRunner是Android提供的一个工具,它可以运行测试脚本,使用Python语言编写,通过控制台或网络接口与Android设备进行交互。而Eclipse是一个集成开发环境(IDE),通过安装PyDev插件,可以支持Python开发...
2. **编写Python脚本**:MonkeyRunner使用Python作为脚本语言,编写测试脚本。脚本中可以定义函数,用于执行各种操作,如启动应用、查找视图元素、发送触摸事件等。 3. **导入所需库**:在脚本开头,需要导入...
众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本。不过,最近发现可以用java调用monkeyrunner Api,用java语言写测试脚本。 于是,就简单研究了一下。...
Monkeyrunner使用了Jython(一种运行在Java虚拟机上的Python解释器)来实现与Android系统的交互。这意味着你可以使用Python的语法来访问Monkeyrunner API中的各种常量、类和方法。 - **MonkeyRunner**:提供了一...
- **灵活性**:Monkeyrunner允许开发者使用Python语言,创建灵活的测试脚本。 - **可视化**:通过截图功能,可以直观地查看测试过程和结果。 - **自动化程度高**:适用于长时间、重复性的测试任务,减轻手动测试...
- **Python**:一种广泛使用的高级编程语言,Monkeyrunner脚本主要使用Python编写。 - **Eclipse**:一款开源集成开发环境,支持多种编程语言,通过安装特定插件可支持Monkeyrunner脚本编辑。 #### 二、Python环境...
在这个领域,Java语言扮演着核心角色,因为它是一种广泛用于编写自动化测试脚本的语言,且与Android平台兼容性良好。 安卓混合脚本测试的主要目标是确保应用程序在不同环境、设备和用户交互下的功能性和性能。它...
MonkeyRunner是基于Java语言的,因此需要JDK来编译和运行其Python脚本。确保你的系统已经安装了最新版本的JDK,并将其添加到系统的PATH环境变量中,这样MonkeyRunner才能找到并使用JDK。 SDK,即Android SDK,是...
- 脚本语言支持Java和Python,Python的脚本编写通常更简洁灵活。 - 缺点主要是脚本移植性较差,可能需要针对不同的设备或系统版本进行调整。 3. **Monkeyrunner脚本编写** 在开始编写Monkeyrunner脚本之前,需要...
Python在手机自动化测试中的应用广泛,特别是在互联网领域,它凭借其简洁易懂的语法和丰富的库支持,成为了自动化测试的首选语言之一。本教程主要涵盖了使用Python进行手机自动化测试的基本步骤,包括JDK、SDK、...
然而,由于脚本语言为Jython(Python的Java版本),对测试人员的技术要求较高,学习成本也较大,且执行效率相对较低。 3. UIAutomator UIAutomator是Android提供的专门用于UI测试的框架,支持所有Android事件操作。...