基于的图像对比库opencv的测试工具,测试脚本使用Python编写,非常强大。如果你的app没有源码,可以选择它;或者你想做系统测试(跨app的测试),也可以选择它。其它的还是用下面说的那些个吧。
我通过其核心包sikuli-script.jar实现了android的sikuli化,暂时不打算开源。其实原理挺简单的,认真看过sikuli源码的应该都能写出来。
看lz的意思应该只是想问应用层的,我来说点应用层的
先说说开源的吧:
Robotium
Monkeyrunner
Robolectric
CTS
还有个新兴的测试工具,以前在GitHub看到,现在找不到了,好像是BDD类型的语法;现在还不成熟。
另外基于web的测试也有基于Selenium Webdriver 的 Android WebDriver:
有两种:
基于Remote Server的:官方提供了java接口的,但是Python版的官方里面却没有。我非常喜欢Python,所以自己实现了并且开源到了GitHub:http://bitbar.com/products
有问题大家可以提到上面
基于Instrumentation的:已经在Android SDK r14里面可以安装了
不开源的多了,不过我见过的一般是以下几种思路:
1. 基于Android Java Instrumentation框架:
基于Robotium,比如bitbar的产品:http://bitbar.com/products
基于Instrumentation,那海了去了,很多公司自家写的工具都基于这个;另外Robotium是基于这个的
2. 基于Android lib层的各种命令,比如sendevent,getevent, monkey, service这些,然后用各种语言封装
MonkeyRunner还是很有前景的,Google自己弄的。现在新的dev版本已经有支持UI的id操作的EasyMonkey了。可以git clone git://android.kernel.org/platform/sdk.git看看