Automate tests in
months
seconds.
We received your invite request! For any questions,
shoot us a note at
contact@bytesalt.com.
NOW SUPPORTS MOBILE APPS
How Runpad works
Create a test
Just use your app as usual. Runpad remembers your actions.
Run on any device
Run the test on devices of any shape or size.
Debug failures easily
No more wasted time troubleshooting failing tests.
Simple, powerful.
Easy to maintain
Stop wasting engineering time on test maintenance
Integrate your CI
Works with your CI provider
Re-usable data
Scale your tests with re-usable variables
Add code anywhere
Support advanced use cases with scripting
FAQs
What mobile app frameworks does Runpad support?
Runpad supports most mobile app frameworks, including native iOS, native Android, React Native, and Flutter.
What CI tools does Runpad work with?
Runpad works with most CI tools. You can simply add the Runpad CLI command as a step to your CI pipeline. Learn more
here.
Does Runpad scale for complex apps?
Although Runpad offers simplicity, it is designed to handle complexity. You can add custom code anywhere in your test, call APIs, re-use data using variables, and support dynamic UI with custom element selectors.
How does Runpad make maintenance easier in the long run?
While Runpad makes test creation super fast, its true value is in long-term maintenance. When a test run fails, Runpad provides a visual comparison of the expected and actual results, along with video recordings and device logs, making it easy to identify the root cause of the failure. Additionally, updating tests due to UI changes is effortless - you can modify existing tests by adding or removing screens at any point, without having to re-record the entire test.
How does element selection work?
When you select an element, Runpad scans the page source and automatically generates the most suitable selector, based on industry best practices. For stable tests, the algorithm prefers identifying an element using its Accessibility Identifier. In cases where an Accessibility Identifier is unavailable, it falls back to an XPath based on the element hierarchy, accompanied with a warning to add an Accessibility Identifier for improved stability.
If you need to, you have full control to edit the selector to your liking.
Read more
here.