A powerful, multiplatform E2E UI testing framework for Flutter apps that handles native interactions.
Patrol is an open-source, multiplatform end-to-end UI testing framework built specifically for Flutter applications. It solves the problem of testing complex, real-world app interactions that involve native OS features—like permission dialogs, notifications, and system settings—which Flutter's standard integration_test package cannot handle. By providing native automation capabilities and an intuitive testing syntax, it enables comprehensive testing of critical business features across mobile and web.
Flutter developers and teams building production-grade mobile and web applications who need robust, reliable end-to-end UI tests that interact with native system features. It's particularly valuable for projects requiring testing of permissions, authentication flows, notifications, or other OS-level integrations.
Developers choose Patrol because it uniquely bridges the gap between Flutter widget tests and full native system interactions, enabling tests that mirror real user behavior. Its custom finders dramatically reduce test boilerplate, and its native automation capabilities allow testing of features impossible with standard Flutter testing tools, all while maintaining a Flutter-first, intuitive API.
Flutter-first UI testing framework. Ready for action!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Dramatically reduces test boilerplate by providing an intuitive syntax, as shown in the README where verbose find.byKey calls are replaced with simple $() selectors and methods like enterText and tap.
Enables interaction with OS features like permissions, notifications, and system settings—impossible with standard Flutter integration_test—allowing testing of critical business flows such as authentication via WebView.
Supports testing Flutter apps on both mobile and web from a single codebase, enhancing efficiency for multiplatform projects without needing separate test suites.
Includes a CLI with hot restart capabilities, speeding up test development and iteration cycles, and integrates into CI/CD workflows with documented GitHub Actions.
Requires installing and configuring the patrol_cli package to enable native automation features, adding an extra layer to the test environment setup compared to Flutter's built-in tools.
As a framework developed and maintained primarily by LeanCode, there's a dependency on a single company for updates and support, which could pose long-term sustainability concerns if the company shifts focus.
The README links to a feature parity page, implying that not all native interactions are fully supported or may have inconsistencies across different OS versions and devices.