Java 用于自动化测试框架的Appium vs Espresso

Java 用于自动化测试框架的Appium vs Espresso,java,android,automated-tests,appium,android-espresso,Java,Android,Automated Tests,Appium,Android Espresso,在过去的几周里,我一直在使用Appium(python)进行android测试,但昨天我们决定转向Expresso(Java)进行自动化测试。我们之所以做出这种转变,有两个原因: 我们希望扩展我们的自动化测试,并且有很多appium中没有的功能 这是android的最新测试框架之一,具有良好的向后兼容性 小API和非常容易定制 我已经读了好几年了,但是如果我把它和Appium相比,我一点也没有发现什么好东西。我是一名Python/R开发人员,因此可能有几点我无法理解。是否有人愿意帮助我理解,

在过去的几周里,我一直在使用
Appium(python)
进行android测试,但昨天我们决定转向
Expresso(Java)
进行自动化测试。我们之所以做出这种转变,有两个原因:

  • 我们希望扩展我们的自动化测试,并且有很多appium中没有的功能

  • 这是android的最新测试框架之一,具有良好的向后兼容性

  • 小API和非常容易定制

我已经读了好几年了,但是如果我把它和Appium相比,我一点也没有发现什么好东西。我是一名
Python/R开发人员
,因此可能有几点我无法理解。是否有人愿意帮助我理解,转向这个新的测试框架对未来是否有好处?我错过了这里的大局,任何帮助都将不胜感激。

如果你只坚持安卓自动化,而不想自动化iOS,你可以去Espresso

另外,浓缩咖啡需要应用程序的源代码才能实现自动化

优点是,它是由谷歌直接开源的

但我的目标是使用Appium,因为它是一个大型的开源社区,具有巨大的增强功能,并且易于使用任何编程语言实现自动化,而且不用说它同时支持Android和iOS

  • 这种转换将非常有用,因为浓缩咖啡支持应用程序之外的测试活动,如摄像头、浏览器和拨号器等,而appium不支持这些活动
  • 您可以测试应用程序外部的吐司消息、自动完成和对话框
  • 使用Espresso测试套装,您可以找到代码覆盖率并测量您的测试工作

  • 我同意,当涉及到Android测试时,浓缩咖啡可能是非常有效的。例如,它只能运行正在测试的活动,这很好

    尽管如此,我还是坚持使用Appium,因为它对AndroidDriver和iOSDriver都有相同的API。通常Android应用程序都伴随着iOS应用程序,如果你负责UI自动化,你就必须考虑总体成本

    与特定于平台的解决方案相比,Appium具有以下优势:

    • Android和iOS测试可以共享很多类,包括助手方法和配置
    • Android和iOS测试可以在更高级别上共享通用测试逻辑,而在较低级别上有不同或略有不同的实现(例如,有时我可以复制整个页面对象类,并对定位器进行简单更改,以便在其他平台上工作)
    • 同样的API使我们能够在团队中无缝切换iOS和Android测试开发。轻松切换到Selenium进行Web开发是另一个好处
    Appium最大的缺点是较长测试场景的速度和查找元素的一些困难,但这仍然是我的选择


    作为旁注,我想补充一点,您不应该忘记提到测试自动化的测试金字塔。请在单元测试、集成测试和UI测试之间保持平衡

    浓缩咖啡测试在应用程序中,它知道应用程序的所有层。所以你可以模拟应用程序的某些层,更像是一个白盒测试


    Appium测试是黑盒测试,测试只知道应用程序的UI层。主要优势在于跨平台测试。

    我不确定你是否可以用浓缩咖啡测试应用程序之外的东西。为此,您需要使用ui自动机之类的工具。参见和@YairKukielka没错,浓缩咖啡不支持应用程序外的测试,但它可以与UiAutomator协同工作。因此,在相同的测试代码中,您可以编写Espresso和UiAutomator,从而在应用程序内外进行测试。参考:您可以使用意式浓缩咖啡在应用程序之外测试摄像头和手机拨号器的活动。这就是我在回答中的意思。我认为最重要的一点是:您只需测试端到端/与Appium的集成级别即可。这些往往是不确定的,在我看来,这些测试或多或少是无用的。测试失败很难调查。此外:对于复杂的工作流程或越来越多的测试,它们根本无法扩展。解决方案是对组件进行测试(例如,每个活动),测试速度更快、可靠、可跟踪、适应性强(可移动),等等。你不能用Appium做这件事。我同意你的观点。你能澄清你所说的“正在进行的巨大改进”是什么意思吗"? 我找不到太多有意义的东西。我认为appium支持非常低的api级别,但现在它只支持
    5.0
    ,这是不好的。别忘了分享你的经验/印象在稳定性和长期维护成本方面,你会推荐什么?咖啡还是浓咖啡?