Flutter CTO Report 2024
Get insights about Flutter directly from CTOs, CIOs, Tech Leads, and Engineering Managers!

Automated UI Testing in Flutter

We will automate QA processes in your Flutter app. For this purpose, we created Patrol - the first UI testing framework allowing for e2e testing of both Flutter and native features.

How can we help?
Set up Patrol UI Testing Framework
Write a set of automated UI tests

Why do you need automated UI Tests for your Flutter application?

As your Flutter application grows, manual testing gets more and more tedious and time-consuming.

Each time you release your mobile app to production, you have to test not only new features but also all the existing ones developed so far.

When ubiquitous regression starts to be a problem, the speed of development slows down, and the release schedule gets less predictable.

We’ve built our own Flutter UI testing framework, Patrol. It overcomes the limitations of the existing solutions. Patrol is the only UI Testing Framework that works with both Flutter and native UI.

Meet Patrol

1
Open-source and popular in the Flutter community
2
Written in Dart, Flutter-native
3
Enables e2e scenarios
4
Concise syntax
5
Compatible with popular device farms
6
Built on top of flutter-test

See how we can help with Flutter Automated UI testing

1
Set up Patrol in your existing codebase

No matter if you’re just starting or have already written thousands of lines of code - we will set up Patrol in your app.

2
Write a set of UI tests for your business scenarios

We’ll create a comprehensive set of Flutter UI tests in Patrol. It significantly reduces the number of regression bugs and speeds up the release cycle.

3
Integrate Patrol into your CI/CD pipeline

Codemagic, Bitrise, GitHub Actions, or Jenkins - each of them has its peculiarities. We have experience with all of them, and we know how to make it work with Patrol.

4
Configure Patrol to work with device farms

Taking advantage of popular device farms such as Firebase Test Lab or Browser Stack can help check whether the app works fine across all kinds of phones and operating systems.

5
Create a testing strategy

Our QA team took part in tens of Flutter projects encountering many kinds of problems and challenges. Let us take care of your QA processes so that your team can focus exclusively on delivering business value.

6
Train your dev or QA team

If you have an internal QA team that is not yet familiar with Patrol we can teach them both Dart language and Patrol framework. Working hand in hand with our QA experts is the best way to transfer knowledge and best practices.

Alternative solutions

Libraries provided by the Flutter Team for UI Testing

Unfortunately, the Flutter ecosystem doesn’t provide developers with a robust solution for e2e UI testing. Libraries provided by the Flutter team, such as flutter_driver and integration_test are great when it comes to interacting with Flutter widgets but they don’t allow us to interact with the native UI of the app. As we know, each Flutter app is also a native app with purely native components. For example, in virtually any mobile app, there’s some native permission request dialog. If you want to give your app permission to access the camera or to send push notifications, you have to click on a native system dialog. This is an obstacle which can’t be overcome with the above-mentioned Flutter libraries.

Flutter doesn't get along with Appium

There are also solutions popular in the native development world that can be integrated with Flutter. The most popular solution of this kind is Appium - a cross-platform UI testing framework. Although Appium has no official support for Flutter, it has an open-source connector to Flutter. Technically it allows access to both native and Flutter components, but it’s extremely inconvenient to use with Flutter. You can’t write your tests in Dart; Flutter widgets can be accessed only by bare strings, and the open-source connector is buggy and poorly maintained.

What can you expect from our Team of QA Experts?

Developers from the best Universities (no career changes)

Our entire team graduated from computer science studies at the best technical universities in Poland, where the vast majority comes from Warsaw University of Technology. Moreover, we are also leading two courses at that University about Developing Mobile Apps in Flutter and System Architecture in .NET.

Do you want to start automating your Flutter UI Tests?

You ask, we answer

Can I integrate Patrol with popular Test Management Systems (TestRail, Allure, etc.)?

Why not Appium?

How can I be sure that the Patrol framework won’t be abandoned in the future?

Can we just use Patrol on our own?

What languages should I use to write tests in Patrol?