The things that i liked most about Maestro itself is:

  • we don’t need to bother taking care of things related to configuration related to device capabilities (if we use Appium or Selenium, we need to manually set the device capabilities by ourselves, when it’s quite time consuming to do it)
  • also, we don’t need to delve deeper more about programming logic/structure because all test scenarios, and even assertions itself are written in yaml format

However, there are some things that i’ve noticed from Maestro that are slightly different from using katalon/appium/selenium, one of those things are regarding the performance capabilities when running test scenarios using physical devices. Previously, without using Maestro, if we did automated tests using connected devices, it ran quite fast. However, what i noticed when using Maestro was that there was a slight delay of 3-4 seconds to determine whether the UI element we set was correct or not. Even with the help of built-in methods such as waituntilvisible, it’s still not that fast in determining the UI element we are targeting

In addition, what surprised me was that the assertion process itself would only fail if we could not determine the UI/element that matched the one we were targeting. For instance, even though the test scenario we created actually (or expected) to failed, as long as the UI element can be identified, the scenario will be considered passed and proceed to the next scenario.

Despite of that, Maestro itself is so easy for automating mobile apps and i can say for sure, it’s very easy to use when compared to some other tools/frameworks