在Android中使用Instrumentation进行GUI测试

16

我想测试我的Android应用程序UI,包括按键事件和按下按钮等。我已经阅读了一些文档,其中提到Instrumentation可以用于此目的。

有使用Instrumentation进行UI测试经验的人吗?


查看附带Android的Monkey程序。 - Donal Rafferty
如果您认为问题已经解决,请接受其中一个答案。 - mxk
4个回答

17

在Android上执行UI测试的官方推荐方式是使用instrumentation。请查看InstrumentationTestRunner。有些功能的包装器使其更容易使用,其中之一是Robotium,另一个则是Calculon

然而,大多数人现在似乎都认为Google的测试框架失败了。它非常不稳定、非常慢,而且API非常糟糕,使得测试难以编写和理解。因此,我认识的大多数人在运行较大的测试套件时选择Robolectric,它将UI测试从设备和Dalvik中移开,转移到了普通的JVM中。它已经取得了长足的进步,现在实际上非常可用。请去看看吧。当然,主要缺点是它不会实际上在设备上对应用程序进行仪器化,甚至不会渲染UI。它在代码层面上做出断言,因此不是黑盒测试的正确选择。

另一种黑盒/端到端测试应用程序的方法是使用Selenium和NativeDriver。NativeDriver是WebDriver API的一个实现,因此您可以针对Android设备运行类似于Selenium的测试。

还有一个要提到的工具是Android自己的monkeyrunner(不是Monkey UI exerciser,它只是向设备发送随机事件,使其在压力测试方面有用,但在功能测试方面无用)。monkerunner是一个Python脚本设备桥接器,您可以通过它发送按键和触摸来测试您的应用程序。虽然它可以做其他的事情,比如截取测试应用程序的屏幕截图,但我仍不建议使用它,因为它充满了漏洞并且功能非常有限。


@Mathias,你知道在哪里可以找到一些关于如何制作InstrumentationTestRunner的教程吗?谢谢。 - youssoua
1
只需在谷歌上搜索,就会有大量的相关内容。或者更好的方法是购买我们的书籍,在书中我详细解释了这些内容;-) http://www.amazon.com/Android-Practice-Charlie-Collins/dp/1935182927 - mxk

4
我不熟悉仪器,但Android带有一个名为"应用程序测试猴子"的工具。它生成随机用户输入流以在压力下测试应用程序。它易于使用,并且在点击涌入时观看您的应用程序疯狂是有趣的。这就是你要找的吗?

4

虽然您的问题已经有一段时间了,但也许我的答案仍然有帮助:

请查看 Robotium,它支持 Android 应用程序的黑盒 UI 测试。它可以在不对生产代码进行检测的情况下工作,因此我希望检测不是您的严格要求。


2

有一些新的UI测试工具随着SDK工具修订版21推出:

UI Automator测试框架
UI测试的一个常见方法是手动运行测试并验证应用程序的行为是否符合预期。UI Automator是一个新的软件测试框架,可在Tools R21中使用,提供了一些工具来轻松地自动化UI测试任务。它提供了一个GUI工具来扫描和分析Android应用程序的UI组件(uiautomatorviewer),包含API的库来创建定制的功能性UI测试,以及执行引擎来自动化和运行针对多个物理设备的测试。UI Automator适用于Android 4.1(API级别16)或更高版本。要了解更多信息,请访问UI Testing documentation

来源:http://android-developers.blogspot.de/2012/11/android-sdk-tools-revision-21.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接