我已经使用 AndroidViewClient 几个月了,到目前为止我很喜欢它,它很简单,而且是一个非常强大的工具。我正在尝试开发一个自动化测试平台,以便对我们的产品进行更广泛、更彻底的自动化测试,我将不得不决定是继续使用 AndroidViewClient 还是转向 Espresso 或其他工具(例如 selenium)。我知道Androidviewclient基本上是用于黑盒测试,不需要访问源代码。有人可以列出 AndroidViewClient 不提供的一些 Espresso 功能/优点吗?我想看看这两种工具在功能方面的比较。
最佳答案
这是一个非常好的问题,但恐怕没有一个直接而简单的答案,这取决于上下文。
此外,最接近的比较是 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 之前,解决方法是在测试中插入足够长的 sleep 或超时时间,或者添加代码以继续重试失败的操作。
culebra自动为 UI Automator 生成测试(和脚本)。该代码是通过在设备上记录您自己的交互来生成的,因此您不必实际编写任何测试代码。下一代,CulebraTester具有新的 UI 以及生成 python、Java 和 javascript 测试的能力。
最新 Android Studio 预览版中的 Espresso 测试记录器对 Espresso 的作用几乎相同。
关于android - 对于 Android GUI 自动化测试,AndroidViewClient/Culebra 相对于 Espresso 有哪些缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38667966/