16

I want to test my Android applications UI, with keyevents and pressed buttons and so on. I've read som documentation that Instrumentation would be able to use for this purpose.

Anyone with expericence with using Instrumentation for UI testing?

4

4 回答 4

17

官方推荐的在 Android 上执行 UI 测试的方法是检测,是的。看看InstrumentationTestRunner。存在这种功能的包装器,使其使用起来不那么痛苦,其中一个是Robotium,另一个是Calculon

然而,现在大多数人似乎都同意谷歌的测试框架是失败的。它非常不稳定,非常慢,而且 API 很糟糕,使得测试难以编写和理解。因此,我认识的大多数运行大型测试套件的人都选择Robolectric,它将 UI 测试从设备和 Dalvik 转移到一个普通的旧 JVM。它已经走了很长一段路,而且这些天实际上非常有用。一探究竟。主要缺点当然是它实际上不会在设备上检测应用程序,甚至不会渲染 UI。它在代码级别进行断言,因此它不是黑盒测试的正确选择。

另一种对应用进行黑盒/端到端测试的方法是 Selenium + NativeDriver。NativeDriver 是 WebDriver API 的实现,因此您可以针对您的 Android 设备运行 Selenium 风格的测试。

另一个需要提及的工具是 Android 自己的monkeyrunner(不是 Monkey UI 练习器,它只是将随机事件发送到设备,使其可用于压力测试,但不适用于功能测试)。monkeyrunner 是一个 Python 脚本设备桥,您可以通过它发送击键和点击以检测您的应用程序。同样,我不建议使用它,因为它充满了错误并且功能非常有限。不过它还可以做其他事情,例如截取您正在测试的应用程序的屏幕截图。

于 2012-02-09T08:40:59.627 回答
4

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

看看robotsium,它支持 Android 应用程序的黑盒 UI 测试。它可以在不检测您的生产代码的情况下工作,所以我希望检测对您来说不是一个严格的要求。

于 2010-12-22T05:53:34.290 回答
4

我不熟悉 Instrumentation,但 Android 附带了一个名为“Application Exerciser Monkey”的工具。它生成一个随机用户输入流来测试压力下的应用程序。当您的应用在点击的涌入下变得疯狂时,它易于使用且看起来有点有趣。那是你要找的吗?

于 2010-04-20T14:24:30.163 回答
2

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

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

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

于 2012-12-13T23:56:52.683 回答