Marathon is a fast and platform-independent test runner focused on performance and stability. Marathon offers easy to use platform implementations for Android and iOS as well as an API for use with custom hardware farms.
Marathon implements multiple key concepts related to test execution such as test batching, device pools, test sharding, test sorting, preventive retries as well as post-factum retries. By default most of these are set to conservative defaults but custom configurations are encouraged for those who want to optimize performance and/or stability.
Marathon’s primary focus is on full control over the balance between stability of test execution and the overall test run performance.
Marathon is easy to configure either through CLI or using our grade plugin
Marathon takes into account two key aspects of test execution:
Marathon takes a number of steps to ensure that each test run is as balanced as possible:
Start by visiting the Download and Setup page to learn how to integrate Marathon into your project. Then take a look at Configuration page to learn the basics of configuration. For more help and examples continue through the rest of the Documentation section, or take a look at one of our sample apps.
Marathon requires Java 8 or higher.