Appium: A Mobile Application Automation Testing Tool

 In Alten Blogs

Appium is one of the open-source mobile application automation testing tools for automating native, mobile web, and hybrid applications on iOS and Android platforms. Native apps are apps which are written using iOS or Android SDKs. Mobile web apps are web apps that are accessed using a mobile browser. Hybrid apps combine the elements of both the web and native applications.

Importantly, Appium is “cross-platform”: we can write tests against multiple platforms (iOS, Android), using the same API. This enables reuse of code between iOS and Android test suites.
Appium: Mobile Application Automation Testing Tool

Appium supports the following platforms:

  • Android
  • iOS
  • FirefoxOS

Appium supports following languages with the Selenium WebDriver API and language-specific client libraries.

  • Java
  • Objective-C
  • JavaScript with Node.js
  • PHP
  • Python
  • Ruby
  • C#
  • Perl
Client/Server Architecture of Appium

Appium has client/server architecture and exposes a REST API. The test code can be written in any language that has an http client API, but it is easier to use one of the Appium client libraries. The server can be in some other machine when the tests are running on. We can write test code and rely on a cloud service like Sauce Labs to receive and interpret the commands.


Automation in Appium is performed in the context of a session. Clients initiate a POST/session request to the server, with a JSON object called the ‘desired capabilities’ object. The server starts up the automation session and creates a session ID that will send further commands.

Desired Capabilities

Desired capabilities are a set of keys and values (like a map or hash) that are sent to the Appium server to inform the server about the kind of automation session that will start up. They modify the behaviour of the server during automation.

Appium Server

Appium is a server that is written in Node.js that can be built and installed from source.

Appium Clients

There are some client libraries in Java, Ruby, Python, PHP, JavaScript, and C# that support Appium’s extensions to the WebDriver protocol. When using Appium, these client libraries are used, instead of the regular WebDriver client., Appium.exe

The exe needs to be downloaded and executed. This exe contains everything that is required to run the Appium server.

Appium makes mobile application regression testing task easy, especially for large mobile applications where apps are updated with new features and functionalities. Another main benefit of using Appium for mobile applications automation is it supports the multiple platforms and languages. It can also use any testing framework.

How does Appium work in iOS Mobile Application?

In iOS, Appium proxies command to a UI Automation script running in Mac Instrument’s environment. Apple provides some instruments for profiling, controlling and building iOS apps. It also has an automation component where the commands can be written in JavaScript and also uses UI Automation APIs for interacting with the App UI. Appium utilizes these same libraries to automate iOS Apps.

How does Appium work in Android Mobile Application?

UI Automaton which is Android’s native UI automation framework is used to execute the test cases directly into the device from the command line. Here, Java is used as the programming language. Appium will make it run from any WebDriver supported languages.

Limitations of Appium

  • For Android, there is no Support for Android API level < 17
  • Script execution is very slow on iOS platform

Setting up of Appium

Below mentioned are the steps for setting up Appium

  • Install the Java Development Kit
  • Set up Java Environment Variable path
  • Install Android SDK / ADB on Windows and Android SDK packages
  • Set up the Android Environment Variable
  • Download and install NodeJs and Microsoft .Net framework
  • Download and install the Appium Desktop Client
  • Enable Developer mode option on Android phone or tablet
  • Install PdaNet to connect with Android device
  • Install Eclipse IDE and setup a project
  • Setup Appium project in Eclipse

Reference site for setting up Appium:

Appium A Cross-platform Mobile Automation Tool

If you have any query on Mobile Application Automation Testing, please drop us a mail at

Was this post helpful?

Recommended Posts
Showing 2 comments
  • Kendra

    Amazing! This blog looks exactly like my old one! It’s on a completely different topic but it has pretty much the same layout and design. Outstanding choice of colors!

  • Valena

    “Very neat blog article. Will read on…”

Leave a Comment

Contact Us

If you’d like us to contact you, please fill out the form.

Not readable? Change text. captcha txt
Enterprise IT Services, Alten Calsoft Labsnfv solutions, Alten Calsoft Labs