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.
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.
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.