Appium v​​s Espresso用于自动化测试框架

时间:2016-02-23 17:45:49

标签: java android automated-tests appium android-espresso

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

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

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

  • 小API,非常容易定制。

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

4 个答案:

答案 0 :(得分:13)

  1. The Esifting将非常有用,因为Espresso支持应用程序以外的测试活动,如相机,浏览器和拨号器等appium不支持。
  2. Espresso,您可以测试吐司消息,自动完成以及应用程序外的对话框。
  3. 使用Espresso Test Suit,您可以找到代码覆盖率并测量您的测试工作。

答案 1 :(得分:12)

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

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

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

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

答案 2 :(得分:7)

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

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

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

  • Android和iOS测试可以共享许多类,包括帮助方法和配置,
  • Android和iOS测试可以在更高级别上共享通用测试逻辑,而在较低级别上具有不同或稍微不同的实现(例如,有时我可以复制整个页面对象类并进行简单的定位器更改以使其工作在另一个平台上),
  • 相同的API使我们能够在团队中无缝切换iOS和Android测试开发。轻松切换到Selenium进行Web开发是另一个好处。

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

作为旁注,我想补充一点,你不应该忘记测试金字塔,它指的是测试自动化。请在单元测试,集成测试和UI测试http://martinfowler.com/bliki/TestPyramid.html

之间保持平衡

答案 3 :(得分:6)

两者之间的主要区别是,

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

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