【问题标题】:What are some of the disadvantages of AndroidViewClient/Culebra over Espresso for Android GUI Automated Testing?对于 Android GUI 自动化测试,AndroidViewClient/Culebra 与 Espresso 相比有哪些缺点?
【发布时间】:2016-11-11 14:04:30
【问题描述】:
我已经使用 AndroidViewClient 几个月了,到目前为止我很喜欢它,它既简单又非常强大。我正在尝试开发一个自动化测试平台,以便对我们的产品进行更广泛和彻底的自动化测试,我将不得不决定我们是坚持使用 AndroidViewClient 还是转向 Espresso 或其他工具,例如 selenium。我知道 Androidviewclient 基本上是用于黑盒测试,不需要访问源代码。有人可以列出 AndroidViewClient 不提供的 Espresso 的一些功能/优势吗?我想看看这两种工具在功能方面的比较。
【问题讨论】:
标签:
android
selenium
automated-tests
android-espresso
androidviewclient
【解决方案1】:
这是一个非常好的问题,但恐怕没有直接简单的答案,这取决于上下文。
此外,最接近的比较是 AndroidViewClient/culebra 与 UI Automator,因为它们都有不同的目标:
-
Espresso:UI 测试框架;适用于功能 UI 测试
在一个应用程序中。 Espresso 非常适合编写白盒式自动化测试,其中测试代码利用被测应用的实现代码细节。
-
UI Automator:UI 测试框架;适合
跨系统和已安装应用程序的跨应用程序功能 UI 测试。 UI Automator 测试框架非常适合编写黑盒式自动化测试,其中测试代码不依赖于目标应用的内部实现细节。
关于 UI Automator 与 AndroidViewClient/culebra,两者都提供几乎相同的功能,因为 AndroidViewClient/culebra 可能的后端之一就是 UI Automator。主要区别当然是前者使用Java,后者使用python。
Espresso 最大的优势是UI thread synchronization,这有助于避免由于时间问题而随机失败的测试。这个测试问题被称为测试片状。在 Espresso 之前,解决方法是在测试中插入足够长的睡眠或超时时间,或者添加代码以继续重试失败的操作。
culebra 自动为 UI Automator 生成测试(和脚本)。该代码是通过在设备上记录您自己的交互而生成的,因此您不必实际编写任何测试代码。下一代CulebraTester 拥有全新的 UI 和生成 python、Java 和 javascript 测试的能力。
最新的 Android Studio 预览版中的 Espresso 测试记录器对 Espresso 的作用几乎相同。