A native iOS UI automation test framework with built-in synchronization for stable and repeatable tests.
EarlGrey is a native iOS UI automation test framework that enables developers to write clear and concise tests. It solves the problem of flaky and unstable UI tests by automatically synchronizing with the UI, network requests, and various queues, ensuring the UI is in a steady state before actions are performed.
iOS developers and QA engineers who need reliable and repeatable UI automation tests for their iOS applications, particularly those working within the Xcode ecosystem.
Developers choose EarlGrey for its built-in synchronization features that drastically increase test stability, its seamless integration with XCTest and Xcode, and the ability to write concise tests without manual waiting or flakiness.
:tea: iOS UI Automation Test Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Synchronizes automatically with UI, network requests, and queues, drastically reducing flaky tests by ensuring actions only occur when the interface is in a steady state, as highlighted in the README.
Works directly with XCTest and Xcode's Test Navigator, allowing tests to be run and debugged within Xcode or via xcodebuild, making it a natural fit for iOS developers.
Provides manual timing implementations for custom scenarios, offering developers the ability to override automatic synchronization when needed, as mentioned in the features.
Prioritizes test stability and repeatability by waiting for UI steadiness, which is core to its philosophy and reduces intermittent failures common in UI automation.
EarlGrey 1.0 is deprecated and not maintained for iOS 13, forcing users to migrate to EarlGrey 2.0, which may involve breaking changes and additional effort.
Collects and uploads usage data (e.g., MD5 hashes of bundle IDs and test names) to Google Analytics by default, requiring manual opt-out in code, which can raise privacy and compliance concerns.
Exclusively supports iOS, making it unsuitable for cross-platform testing workflows without integrating additional frameworks, limiting its scope compared to tools like Appium.