首页 文章

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

提问于
浏览
13

在过去几周,我使用 Appium(python) 进行Android测试,但昨天我们决定转向 Expresso(Java) 进行自动测试 . 我们为什么要做这个转变有几个原因:

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

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

  • 小API,非常容易定制 .

我一直在阅读Espresso但是我找不到任何好的东西,如果我将它与Appium进行比较 . 我是 Python/R developer 所以也许有几点我无法理解 . 有谁愿意帮助我了解这个新测试框架的转变是否对未来有利?我错过了这里更大的图片,任何帮助将不胜感激 .

4 回答

  • 11

    如果你只坚持Android自动化并且不知道自动化iOS,你可以去Espresso .

    AFIKW,Espresso需要应用程序的源代码才能实现自动化 .

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

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

  • 3
    • The Shifting将非常有用,因为Espresso支持在应用程序之外测试活动,如相机,浏览器和拨号器等appium不支持 .

    • Espresso你可以测试吐司消息,自动完成以及应用程序外的对话框 .

    • 使用Espresso Test Suit,您可以找到代码覆盖率并测量您的测试工作 .

  • 6

    我同意Espresso在单独进行Android测试时效率可能非常高 . 例如,它只能运行它正在测试的活动,这很棒 .

    不过,我坚持使用Appium,因为它对AndroidDriver和iOSDriver都有相同的API . 通常Android应用程序附带iOS应用程序,如果您负责UI自动化,则必须考虑总体成本 .

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

    • Android和iOS测试可以共享许多类,包括辅助方法和配置,

    • Android和iOS测试可以在更高级别上共享通用测试逻辑,而在较低级别上具有不同或稍微不同的实现(例如,有时我可以复制整个页面对象类并进行简单的定位器更改以使其在其他平台),

    • 相同的API使我们能够在团队中无缝切换iOS和Android测试开发 . 轻松切换到Selenium进行Web开发是另一个好处 .

    Appium的最大缺点是较长的测试场景的速度和定位元素的一些困难,但仍然是我的选择 .

    作为旁注,我忘记了测试金字塔,它指的是测试自动化 . 请在单元测试,集成测试和UI测试之间保持 balancer http://martinfowler.com/bliki/TestPyramid.html

  • 12

    两者的主要区别在于,

    Espresso测试在应用程序中,它知道应用程序的所有层 . 因此,您可以模拟某些应用层,更像是白盒测试

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

相关问题