Appium Architecture

Appium automation supports Native, Hybrid and Mobile Web application testing, and you can execute Appium scripts on simulators, emulators and real physical mobile devices on iOS and Android platforms.

Cross platform

Appium supports multiple platforms. It has no dependency on the mobile OS where the application under test is running. Appium scripts can run everywhere on iOS , Android, Windows etc.


Appium server is an HTTP server written in Node.js. The server receives http requests from appium clients in Mobile JSON protocol. The server handles the requests. Appium is a wrapper that translates Selenium WebDriver commands into XCUITest for iOS and UIAutomator/UIAutomator2 for Android. Xcode comes with the XCUITest framework which allows you to easily develop UI tests for iOS applications. Android UiAutomator2 framework allows automation on an Android device or emulator.

Appium server sends the commands to XCUITest framework / UIAutomator framework. The bootstrap program on the respective devices execute the commands on the devices and sends the response to the Appium server.

Appium Drivers

There are several drivers available for multiple platforms. Below are the list of drivers that we can use. In order to run tests on real devices, simulators and emulators, you need to install Appium driver for that target device.

For example, Appium driver for Android UIAutomator2

npm install appium-uiautomator2-driver


List of Drivers

Below are the list of some of the Appium drivers:

XCUITest for iOS.
UIAutomation for iOS.
UIAutomator / UIAutomator2 for Android.
Espressso for Android.
Selendroid for Android.

Related Posts