What is Appium And How It Works ?

What is Appium?

Appium is an open source test automation tool for mobile applications. It allows you to test all the three types of mobile applications: native, hybrid and mobile web.
It also allows you to run the automated tests on actual devices, emulators and simulators.
Today when every mobile app is made in at least two platform iOS and Android, you for sure need a tool, which allows testing cross platform. Having two different frameworks for the same app increases the cost of the product and time to maintain it as well.
The basic philosophy of Appium is that you should be able to reuse code between iOS and Android, and that’s why when you see the API they are same across iOS and android. Another important thing to highlight here is that unlike Calabash, Appium doesn’t modify your app or need you to even recompile the app.
Appium let’s you choose the language you want to write your test in. It doesn’t dictate the language or framework to be used.

Note: Interview questions for Appium Training

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 frameworks 

>>Vendor-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 ?

In Android, Appium works in these below given steps as shown in the above picture
  1. Appium client (C# or Java) connects with Appium Server and communicate via JSON Wire Protocol
  2. 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)
  3. Vendor-provided frameworks will then communicate with bootstrap.jar which is running in Emulator/Real device for performing client operations
  4. Bootstrap.jar act as a TCP server to perform action on our AUT (Application Under Test)

How Appium works in iOS?

In iOS, Appium works in these below given steps as shown in the above picture
  1. Appium client (Java or Python) connects with Appium Server and communicate via JSON Wire Protocol (*ignore in C# in picture)
  2. 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
  3. UIAutomation will then communicate with bootstrap.js which is running in Simulator/Real device for performing client operations
  4. Bootstrap.js will perform action on our AUT (Application Under Test)
For More Information Visit Mindmajix

Comments