Aw gawd no. Why do test framework authors repeatedly think this is a good idea? Everywhere I’ve worked that has embraced such a framework (often robot), the suites always eventually outgrow the capabilities of whatever DSL the framework provides.
Even with escape hatches into an established language, you turn the majority of test editing into second class citizen, because there is no chance that your ”test-IDE” will beat IntelliJ or VSCode. Developers don’t want to touch such test code and testers do the lazy thing and copy paste instead of building appropriate fixtures. Do you really want to relearn how to define a constant in flavor of the month test-dsl, vs just doing it the way you always do in TS?
When you see a yaml that resembles a list of ”steps”, it’s not declarative anymore, it’s a crippled imperative language in disguise.
Hi everyone, co-founder of Mobile.dev and co-author of Maestro here . Thanks jstan for sharing Maestro and for the kind words—really glad to hear it’s working well for you!
We built Maestro because E2E testing felt unnecessarily complicated, and we wanted something simple and powerful that anyone could use — whether you’re a seasoned developer or just getting started with automation. It’s been amazing to see it adopted at companies like Meta, Block, DoorDash, Stripe, and Disney, but honestly, what excites us most is seeing teams who’ve never done test automation before finally get a solid strategy in place because Maestro is so easy to use and get started with.
Oh, and if you’re wondering — yes, it works for web testing too!
We’re constantly iterating and adding features, so if you’ve got ideas, run into issues, or just want to chat, let me know. Always happy to hear how we can make it better.
Thanks again for checking it out, and happy testing!
We loved Maestro but we didn’t like the pricing and the team wanted something more predictable. We are using Moropo and it’s been great. Very affordable, good DX, and it’s all basically just Maestro with extras.
The advantages of using open source! It would be great if it became industry standard and more companies would offer it as a service.
Yep free and open-source to use. Plenty of folks run Maestro on directly on GitHub Actions, Bitrise, etc. Teams often run on our hosted cloud infra for parallelism and reliability when scaling up their testing, but that's totally up to you!
Hey tibbe - co-founder of Mobile.dev here. First off, totally get where you're coming from. We do offer a startup discount, but would love to dig in more to see if there's something we can work out. My co-founder and I would love to chat if you're open to it! Just shoot me a note if interested! leland@mobile.dev
Installed and tried it for a sample Flutter app. So far looks too good to be true :) Super easy to start and tinker with. And surprisingly fast. Learning how to write real world tests with Flutter apps probably will have some learning curve, but that's expected.
Would be amazing to use it with Flutter desktop (macos at least) to avoid running iOS simulators.
I’ve been using Maestro for two very large Flutter apps and it’s been so ahead of every other option is not even funny.
No long compilation times, no half baked testing dev experience, supports iOS and Android, no pumpAndSettle BS, No Flutter hacks, multiple cloud providers (cloud.mobile.dev, moropo), you can interact with native elements, so you can work with push notifications, system dialogs, system settings, email clients, web views, browsers, and a very simple test definition files that every capable QA engineer can maintain with very little supervision from developers (no need for dart expertise for writing tests).
I found out about Maestro after I coming across Flashlight. I was looking for something that could effectively give me a performance score for my apps like Google Lighthouse, but for mobile apps. I found that in Flashlight. I found Maestro was relatively easy to pick up, like others have said before.
I'm a performance engineering consultant, but my apps are side projects, so I needed something that helps me do some quick performance testing. Maestro, and Flashlight, help me do that. It's early days, but I'm actually working on a separate product to use both Flashlight and Maestro to test on any number of real devices so I can get performance score trends across devices. Contact me if you're interested.
Looking forward to testing some of the updates with Maestro, especially web and iOS device support.
We extensively use Maestro in our testing setup. We test our Android (+ Android TV) and iOS apps on a couple of different emulators, and use it to take a bunch of screenshots to generate diff reports.
The only thing we don't like so far is that it is not extensible at all. And the AI direction is one that we absolutely don't care for either.
We built a huge wrapper script in python that allows us to spin up and control a wiremock server, as well as help us implement features that are not supported by maestro directly. We make calls to a local webserver (spawned by our wrapper) from the maestro test to do this, which works surprisingly well but it feels like we could perfectly leverage custom yaml commands or something like that.
Trying this out at work and so far it has been leagues better than other mobile automation tools. I have just gotten started but it has been encouraging.
Aw gawd no. Why do test framework authors repeatedly think this is a good idea? Everywhere I’ve worked that has embraced such a framework (often robot), the suites always eventually outgrow the capabilities of whatever DSL the framework provides.
Even with escape hatches into an established language, you turn the majority of test editing into second class citizen, because there is no chance that your ”test-IDE” will beat IntelliJ or VSCode. Developers don’t want to touch such test code and testers do the lazy thing and copy paste instead of building appropriate fixtures. Do you really want to relearn how to define a constant in flavor of the month test-dsl, vs just doing it the way you always do in TS?
When you see a yaml that resembles a list of ”steps”, it’s not declarative anymore, it’s a crippled imperative language in disguise.
We built Maestro because E2E testing felt unnecessarily complicated, and we wanted something simple and powerful that anyone could use — whether you’re a seasoned developer or just getting started with automation. It’s been amazing to see it adopted at companies like Meta, Block, DoorDash, Stripe, and Disney, but honestly, what excites us most is seeing teams who’ve never done test automation before finally get a solid strategy in place because Maestro is so easy to use and get started with.
Oh, and if you’re wondering — yes, it works for web testing too!
We’re constantly iterating and adding features, so if you’ve got ideas, run into issues, or just want to chat, let me know. Always happy to hear how we can make it better.
Thanks again for checking it out, and happy testing!
The advantages of using open source! It would be great if it became industry standard and more companies would offer it as a service.
Would be amazing to use it with Flutter desktop (macos at least) to avoid running iOS simulators.
No long compilation times, no half baked testing dev experience, supports iOS and Android, no pumpAndSettle BS, No Flutter hacks, multiple cloud providers (cloud.mobile.dev, moropo), you can interact with native elements, so you can work with push notifications, system dialogs, system settings, email clients, web views, browsers, and a very simple test definition files that every capable QA engineer can maintain with very little supervision from developers (no need for dart expertise for writing tests).
I can only recommend it.
I'm a performance engineering consultant, but my apps are side projects, so I needed something that helps me do some quick performance testing. Maestro, and Flashlight, help me do that. It's early days, but I'm actually working on a separate product to use both Flashlight and Maestro to test on any number of real devices so I can get performance score trends across devices. Contact me if you're interested.
Looking forward to testing some of the updates with Maestro, especially web and iOS device support.
The only thing we don't like so far is that it is not extensible at all. And the AI direction is one that we absolutely don't care for either.
We built a huge wrapper script in python that allows us to spin up and control a wiremock server, as well as help us implement features that are not supported by maestro directly. We make calls to a local webserver (spawned by our wrapper) from the maestro test to do this, which works surprisingly well but it feels like we could perfectly leverage custom yaml commands or something like that.