Netsparker Web Application Security Scanner

Overview of APPIUM - Mobile Automation Testing Tool

With the increasing number of mobile device users and their demands, at present; Mobile Device Apps are available almost for all kind of purpose. Thus, market is very competitive, every mobile company thinks that how do we ensure to the consumers that we are delivering the best quality app in the market?

As, everybody knows, how fast mobile devices and their applications are increasing. These mobile applications work on multiple platforms. Additionally, some applications are open source and some are very costly. So, to test these mobile applications that work on multiple device models and multiple platforms strong and effective tool is required. Somehow, automation testing tools may fit to test the quality of the mobile applications.  But, sometime few applications give big challenges to the Mobile Automation Tools.


Overview of Appium:



Among all automation tools, Appium is one of them. It is an open source, cross-platform mobile app automation testing framework developed and supported by Sauce Labs to automate native, hybrid and mobile web applications (support iOS and Android OS). In the last few years, Appium’s popularity and stability gone very high, it has become a demanding tool in the market to test the quality of the application. Although, Appium is a cross-platform automation tool; API of it supports both OS (Android and iOS) test scripts. Appium employs the Selenium WebDriver JSON protocol to regulate the automation API across the two platforms and three app types. It is tested on simulators (iOS, FirefoxOS), emulators (Android), and real devices (iOS, Android, FirefoxOS).

APPIUM is OS independent, but not device independent; depending on the device type it translates Selenium Webdriver commands into both OS (Android and iOS) commands. Since Appium uses the Selenium JSON Wire Protocol, user can  write the test in any language supported by Selenium, like; Java, Ruby, Python, PHP, JavaScript, C#, etc.


Architectural Design of APPIUM:

Hence, Appium is an ‘HTTP Server’ written on Node.js platform, Node.js must be fixed first on the system before starting the Appium Server. Node.js generates and handles iOS and Android session with the help of Webdriver JSON wire protocol.

Once you installed the Node.js on your system then built and installed Appium from source or installed directly from NPM on your system. Once the installation done, the server setup will be shown on your system by representing REST API.

To run the Appium server, you need to download GUI wrappers which come in bundle with everything required to run the Appium server. By using of GUI wrappers, you don’t need to worry about Node. It is also available with the Inspector helps to check the hierarchy of your app.

While using Appium, people like to use client libraries instead of using regular WebDriver client. These client libraries are written in Ruby, Python, PHP, JavaScript, and C# assists Appium extensions on the WebDriver protocol.

As we know, Appium server setup represents a REST API, receives connections from a client then listens for commands, executes those commands on a mobile device (iOS and Android), and responds with an HTTP response displays the result of the command execution.

Automation testing can be possible in the context of a session. In each library, clients begins a session with the help of a server, those sessions can be end by passing a POST/session request to the server. Here, server begins the automation session by responding with a session ID which can be used for sending further commands.


Limitations of APPIUM:

  • Appium doesn’t perform testing on mobile devices support Android Version lower than 4.2.
  • Doesn’t perform well on hybrid app testing and face difficulty in testing the switching action of application (from the web app to native and vice-versa).
  • With the help Appium.exe client, you can easily launch and run an Appium server and Appium Inspector on Windows machine, but on local server, you won’t be able to test iOS apps because Appium trusts on OS X-only libraries to support iOS testing.


Advantages of using Appium:

There are various advantages of using Appium for mobile application testing,

  • Using Appium, you don’t need to change the source code of the app while running the test.
  • To test your mobile app, you don’t need to stick on one particular language to write you test. You can write your test on all languages supported by Selenium. No any kind of setup or visualization required to test the application.
  • Although, it uses first-party (Apple and Google) automation frameworks for testing, test repeats user activities very correctly.


Over to you:

There are many Mobile App Automation Tools available in the market to test the android and iOS mobile app, among all of them, Appium automation framework is best considered by testers. Although, it is an open-source and cross-platform testing tool, company doesn’t have to waste more money on checking the quality of the mobile app.

Checkout the full Mobile Testing Tutorials Series here.


If you are not regular reader of this website then highly recommends you to sign up for our free email newsletter!! Sign up just providing your email address below:

Enter your email address: 

Check email in your inbox for confirmation to get latest updates Software Testing for free.

Happy Testing!!!

4 comments to Overview of APPIUM – Mobile Automation Testing Tool

  • Manas

    Very nice article. Thanks !!

  • Ram

    Really good content. Explained in detailed manner, quite easy to understand for QA people.

  • Manisha

    I am a fresher in testing field. Recently join a mid level company. Now I want to learn what WBT and BBT to test the webs application.

    I have to do for a successful test. Can someone please help me to solve my problem……………..

  • vallam anitha

    Currently I am working on appium as mobile automation testing tool in my company.
    This article is One of the articles that I was looking for. Thanks and it is great to have it from an experienced author!! Looking forward many more to come from your experience.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>