- 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)
Thanks for this post…
The connection was reset error is displayed
Having a doubt, Could you please take a look at below url.
http://stackoverflow.com/questions/37237235/executing-uiautomation-script-commands-from-command-line-in-ios
Awesome explanation, thank you so much!
Hi
Could you please more elaborate on bootstrap.js. I mean bootstrap.js is installed on this device.
Or this bootstarp.js is specific to AUT . Any Article on this?
Good Work Sir !
Good post
There’s a little confusion about which bootstrap you are referring to.
Is it bootstrap.jar – the java bootstrap program which implements class loading
OR
is it bootstrap.js – the javascript (ECMAScript) library?
Thanks for clarifying
Is the UIAutomator a mandatory, I have seen it , it came as part of Android SDK installation.
I have seen some blocks where they are actually launching a .apk file with out calling or using UIAutomator. Also, please tell me , how to to which is the vendor-provided framework for our android devices?