我自己试验了下和官方的API编写不太一样,老别扭了,建议还是用Python写吧
昨天在网上查了一下一天,都是转来贴别人的,真正敲的很少,我真不知道转的大侠你们自己敲了么?
先截一段不负责任的blog图,为什么你们的测试脚本都是一样,真心尴尬。
如下图:
---------------------------------------------------------------------------------------------------------------分割线------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------------------
测试脚本没问题。
好了,开始我的做法。
前提条件:
1、我自己将monkeyrunner源码,直接导出jar,然后引入就能编脚本了
2、难点:
导出jar包,需要把monkeyrunner源码引用的第三方jar包,也要带上,否则你打出来的monkeyrunner.jar是不能用的。
用eclipse的fatjar导出的jar,怎么导出参考百度
3、我写的一个简单的计算器Java版本的case
脚本如下:
TestCalculator.java
package com.monkeyrunner.www; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import com.android.monkeyrunner.adb.AdbBackend; import com.android.monkeyrunner.core.IMonkeyDevice; import com.android.monkeyrunner.core.TouchPressType; public class TestCalculator { private static IMonkeyDevice device; private static AdbBackend adb; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub if (adb == null) { adb = new AdbBackend(); // 参数分别为自己定义的等待连接时间和设备id device = adb.waitForConnection(3000, "192.168.56.101:5555"); } // 添加启动权限 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>(), "com.android.calculator2/com.android.calculator2.Calculator", 0); // 点击某一个坐标 device.type("1+1"); Thread.sleep(3000); device.touch(550, 900, TouchPressType.DOWN_AND_UP); } }
运行结果:1+1=2
总结:
和官方的api不太一样,用Java写的话,感觉对不上,好别扭,用Python写还是蛮适合的,只是我Python不熟,我习惯Java,有兴趣的同学,请参照demo,自行尝试。
引用我生成的monkeyrunner.jar,写脚本编译就不会报错了。
monkeyrunner.jar包下载地址:链接: http://pan.baidu.com/s/1kV3B0xD 密码: pefx