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

pyt*_*hon 17 java android automated-tests appium android-espresso

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

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

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

  • 小API,非常容易定制.

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

anu*_*ain 14

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

  • 我不确定您是否可以使用Espresso测试应用程序之外的内容.为此你需要使用像ui-automator这样的东西.请参阅https://developer.android.com/training/testing/ui-testing/espresso-testing.html和https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html (3认同)
  • @YairKukielka是的,Espresso不支持在应用程序外部进行测试,但可以与UiAutomator协同工作。因此,在同一测试代码中,您可以编写Espresso和UiAutomator,并在应用程序内外进行测试。参考:https://plus.google.com/+AndroidDevelopers/posts/WCWANrPkRxg (2认同)
  • 您可以使用Espresso Intent在您的应用程序外部测试相机和电话的拨号程序活动。这就是我的回答。 (2认同)

kar*_*k23 13

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

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

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

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

  • 我同意你的观点. (3认同)

kie*_*tos 8

我同意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


San*_*mar 6

两者的主要区别在于,

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

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