# Patrol

![Patrol promotional graphics][promo_graphics]

Patrol is a powerful, open-source UI testing framework designed specifically for 
Flutter apps and released in September 2022. Developed and maintained by [LeanCode][leancode], 
one of the world’s leading Flutter development consultancies, Patrol builds upon 
Flutter's core testing tools to enable developers to do things that were previously impossible.

## Why choose Patrol?

### Native Access, Redefined

Unlock [**native platform features**][native] right within your Flutter tests. With Patrol, you can:
 - Interact with **permission dialogs**, **notifications**, and **WebViews**.
 - Modify **device settings**, toggle **Wi-Fi**, and more.
 - Achieve all this effortlessly using plain **Dart** code.

### Intuitive Test Writing

Say goodbye to complexity with Patrol’s custom finder system.
 - Streamline your test code with a shorter, more readable, [**new custom finder system**][finders].
 - Enjoy the speed and convenience of [**Hot Restart**][hot restart], which makes integration testing faster, easier, and more fun.
 - Quickly inspect the currently visible Android/iOS views and discover their properties with the **Patrol DevTools extension**.

### Production-Ready Integration Testing

Patrol revolutionizes Flutter’s built-in `integration_test` plugin:
 - Overcomes its limitations with **full test isolation** between tests and **sharding**.
 - Delivers a robust, **production-grade solution** for your app testing needs.
 - Offers **console logs** to get real-time insights during test execution.

### Compatible with Device Farms

With Patrol's native-like testing capabilities, you can  use popular device farms like:
 - Firebase Test Lab
 - BrowserStack
 - LambdaTest
 - Marathon
 - emulator.wtf
 - AWS Device Farm

## Trusted by LeanCode and the Flutter Community

Patrol is a fully open-source project, and we're proud to share it with the amazing 
Flutter community. Patrol isn’t just a tool; it’s a commitment to quality. At LeanCode, 
we use Patrol to test production-grade apps for clients across industries, and now, you can do the same!

<Info>
[Get Patrol from pub.dev now!][patrol_on_pubdev]
</Info>

**Need expert help?** LeanCode offers end-to-end automated UI testing services tailored for your Flutter apps – check them out:

[![Automated UI testing services][services_graphics]][services]

## More about Patrol

 - Blog Post: [How Patrol fixes Flutter's official integration_test plugin deficiencies][blog_post].
 - GitHub Repository: [leancodepl/patrol][github_repo]
 - Discord Channel: [Join the Patrol channel][dc_invite]
 - Get a quick introduction to Patrol and see the video:

<YouTube id="KRWgAonXH9o" />

[leancode]: https://leancode.co
[native]: /documentation/native/overview
[finders]: /documentation/finders/overview
[hot restart]: /cli-commands/develop
[promo_graphics]: /assets/patrol_lncd.png
[patrol_on_pubdev]: https://pub.dev/packages/patrol
[services_graphics]: /assets/services.png
[services]: https://leancode.co/products/automated-ui-testing-in-flutter?utm_source=patrol_page&utm_medium=banner&utm_campaign=service
[dc_invite]: https://discord.com/invite/ukBK5t4EZg
[blog_post]: https://leancode.co/blog/patrol-2-0-improved-flutter-ui-testing
[github_repo]: https://github.com/leancodepl/patrol
