Android Testing: UIAutomator vs Espresso

Shikhar picture Shikhar · Jun 26, 2015 · Viewed 23.3k times · Source

I was seeking for test frameworks for Android UI automation and I stumbled upon UI Automator and Espresso and this is the part I am confused about -

  1. Both are maintained by Google
  2. Both are used for functional UI testing
  3. Both are Android only frameworks

So my questions/doubts here are -

  • What is the major difference between UI Automator and Espresso?
  • Will the source code have to be modified to integrate any of these frameworks?
  • Does one framework hold any advantage over the other? If yes, then which framework is the most suitable for UI automation of an Android app?

Answer

Dmitry Gr picture Dmitry Gr · Jul 2, 2015

Actually, you don't need to choose. UIAutomator and Espresso use the same instrumentation runner, so you can use commands from both of them in a single test. Espresso has variety of matchers, assertions and actions on UI, that automator doesn't have:

Espresso Cheat Sheet

Espresso is running in separate thread and it is really fast comparing to other test frameworks.

as Summary: use both of them in your tests, Espresso is main and UIAutomator as an additional tool for OS integration.