android - 对于 Android GUI 自动化测试,AndroidViewClient/Culebra 相对于 Espresso 有哪些缺点?

标签 android selenium automated-tests android-espresso androidviewclient

我已经使用 AndroidViewClient 几个月了,到目前为止我很喜欢它,它很简单,而且是一个非常强大的工具。我正在尝试开发一个自动化测试平台,以便对我们的产品进行更广泛、更彻底的自动化测试,我将不得不决定是继续使用 AndroidViewClient 还是转向 Espresso 或其他工具(例如 selenium)。我知道Androidviewclient基本上是用于黑盒测试,不需要访问源代码。有人可以列出 AndroidViewClient 不提供的一些 Espresso 功能/优点吗?我想看看这两种工具在功能方面的比较。

最佳答案

这是一个非常好的问题,但恐怕没有一个直接而简单的答案,这取决于上下文。

此外,最接近的比较是 AndroidViewClient/culebraUI Automator,因为它们都有不同的目标:

  • Espresso:UI测试框架;适合功能性UI测试 在应用程序内。 Espresso 非常适合编写白盒式自动化测试,其中测试代码利用被测应用中的实现代码详细信息。
  • UI Automator:UI测试框架;适合于 跨系统和已安装应用程序的跨应用程序功能 UI 测试。 UI Automator 测试框架非常适合编写黑盒式自动化测试,其中测试代码不依赖于目标应用的内部实现细节。

关于UI AutomatorAndroidViewClient/culebra,两者都提供几乎相同的功能,因为AndroidViewClient/culebra可能的后端之一正是UI Automator。主要区别当然是前者使用Java,后者使用Python。

Espresso最大的优势是UI thread synchronization ,这有助于避免由于计时问题而随机失败的测试。此测试问题称为测试不稳定。在 Espresso 之前,解决方法是在测试中插入足够长的 sleep 或超时时间,或者添加代码以继续重试失败的操作。

culebra自动为 UI Automator 生成测试(和脚本)。该代码是通过在设备上记录您自己的交互来生成的,因此您不必实际编写任何测试代码。下一代,CulebraTester具有新的 UI 以及生成 python、Java 和 javascript 测试的能力。

enter image description here

最新 Android Studio 预览版中的 Espresso 测试记录器对 Espresso 的作用几乎相同。

关于android - 对于 Android GUI 自动化测试,AndroidViewClient/Culebra 相对于 Espresso 有哪些缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38667966/

相关文章:

java - selenium动态点击li项

java - 我是否使用正确的代码来获取文本文件中注册页面的输出

typescript - TestCafe 能够选择禁用的复选框

java - 用于自动化测试脚本的 JUnit 测试?

android如何改变<item>的宽度和高度

android - webview 无法正常工作?

javascript - 在 Se-Builder evals 中,如何引用存储的变量?

java - 一旦我运行一个自动化测试场景,有没有一种方法可以使用自动化测试场景本身来检查 Linux 服务器日志错误消息和异常

android - 设置 Android 对话框 Activity 位置

java - 安卓 : Menu Item always overflows in portrait