- Android OS
- iOS
How Appium Works?
As we already know that Appium support Android, iOS and Firefox OS platforms, there should be a mechanism for Appium to handle them. Hence Appium handles these platforms using vendor-provided frameworksVendor-provided frameworks
The vendor-provided frameworks for different platforms are- iOS — Apple’s UIAutomation
- Android 4.2+ — Google’s UiAutomator
- Android 2.3+ — Google’s Instrumentation. (Instrumentation support is provided by bundling a separate project, Selendroid)
How Appium works in Android ?
Figure 1: How Appium works in Android
In Android, Appium works in these below given steps as shown in the above picture- Appium client (C# or Java) connects with Appium Server and communicate via JSON Wire Protocol
- Appium Server then creates a automation session for the client and also checks the desired capabilities of client and connects with respective vendor-provided frameworks like Selendroid/UIAutomator (based on android versions)
- Vendor-provided frameworks will then communicate with bootstrap.jar which is running in Emulator/Real device for performing client operations
- Bootstrap.jar act as a TCP server to perform action on our AUT (Application Under Test)
How Appium works in iOS?
Figure 2: How Appium works in iOS
In iOS, Appium works in these below given steps as shown in the above picture- Appium client (Java or Python) connects with Appium Server and communicate via JSON Wire Protocol (*ignore in C# in picture)
- Appium Server then creates a automation session for the client and also checks the desired capabilities of client and connects with respective vendor-provided framework UIAutomation
- UIAutomation will then communicate with bootstrap.js which is running in Simulator/Real device for performing client operations
- Bootstrap.js will perform action on our AUT (Application Under Test)