Appium testing in AWS Device Farm - AWS Device Farm

Appium testing in AWS Device Farm

During a remote access session, you can run Appium tests from your local environment, targeting the session's device using a managed Appium endpoint. With an Appium endpoint, you're able to develop, test, and execute Appium code with fast feedback and rapid iteration. This client-side approach to testing offers the flexibility to connect to a Device Farm device from any Appium client environment of your choice.

To complement client-side testing, Device Farm also supports running tests on infrastructure managed by the service, called server-side execution. In this approach, you can upload your app and tests to the service, then executes the tests in parallel on multiple devices using service-managed test hosts. This approach scales well for testing on many devices independently, as well as testing from the context of a CI/CD pipeline.

To learn more about server-side execution, please see Test frameworks and built-in tests in AWS Device Farm.

What is an Appium endpoint?

Appium is a popular open-source software testing framework for testing native, hybrid, and mobile web applications on different devices, including mobile phones and tablets, for both iOS and Android. It allows developers and QA (Quality Assurance) engineers to write scripts that can remotely control a device, simulate user interactions, and verify that the application under test is behaving as expected. Appium interacts with apps from the perspective of an end-user, enabling testers to develop tests that simulate how real users will use the app for their tests.

Appium is built on the client-server model, where a local client requests a (local or remote) Appium server to command a device on their behalf. The Appium server manages a driver for communicating with the device, such as the UIAutomator2 driver for Android or the XCUITest driver for iOS. All commands follow the W3C WebDriver standards for how to control a device.

Device Farm's Appium endpoint exposes an Appium server URL for the device in your remote access session. The Appium endpoint URL will be specific to that device in that session, and remain valid for the duration of the session, allowing you to iterate on the same device without additional setup time. For more information about Remote Access, please see Remote access in AWS Device Farm.