Introduction to Appium Mobile Automation

We have long been using automation for Desktop applications, Web Applications. But in the recent years, the use of mobile devices is increased drastically and introduced new challenges in testing these mobile apps. To achieve these challenges, organizations are looking for alternatives to traditional manual testing.

Mobile Automation testing is a highly effective alternative to traditional manual testing which reduces time needed for a testing and achieve quick results. Using automation, we can re-use same tests to re-run on different devices and different Operating System.

There are a number of Mobile Automation testing tools available in the market, some are paid and some are open source.

We have chosen Appium because of its Advantages :

1. Appium supports most of the programming languages like java, Ruby, Python, PHP, C# etc

2. Appium can test iOS, Android and Firefox OS platform

3. Supports automation of Native apps, Mobile Web apps and Hybrid Apps.

4. Doesn't require access to your source code or library. You are testing apps which are used by the real user.

5. Appium uses Selenium webdriver

6. It is free to use

7. Has support for current and future versions of Android OS

What is Appium ?

Appium is an open source, cross-platform test automation tool for native, hybrid and mobile web apps,. It allows us to automate native, hybrid and mobile web applications. Using Appium we can run automation tests on actual devices, emulators and simulators.

Design Concept / Architecture of Appium ?

Appium is an HTTP server written in Node.js that creates and handles multiple WebDriver sessions.
Appium derives from Selenium and it uses JSONWireProtocol internally to interact with iOS and Android apps using Selenium WebDriver.
Appium receives connections from a client and listens to commands request and execute those command on mobile devices., and responds back with HTTP response representing the result of the command execution.

If you are familiar with Selenium for web testing, Appium will definitely be easy to get started with.

There are 3 kinds of mobile applications that we can automate using Appium :

Native apps are built for a particular device and operating system. Native apps are installed directly on a mobile device. They can be downloaded from a App Store or Google Play store and installed on the device.
A native app is written in the programming language specific for a platform.

Mobile web apps are web apps accessed using a mobile browser (mobile version’ of a web site). They doesn’t have to installed. Web apps are designed to look and behave like apps and purpose is simply to make content or functionality available on mobile

Hybrid apps have a wrapper around a "webview" -- a native control that enables interaction with web content. A hybrid app is a web app that translates to native code on a platform like iPhone or Android. It uses a browser view and hooks to allow your web app to access features on your mobile device.

In the coming tutorials, we will take each of app and execute automation scripts using Appium.

Before starting with Appium, We first need to setup environment to run scripts on android platform using appium.

We need below list of items to be installed on your machine
1. JDK (Java Development Kit)
2. Andriod Studio
3. Appium
3. TestNG
4. Eclispe
5. And Download Selenium Jar

Appium Tutorials: 


Please tell me what are the drivers are available for Appium tool?

What a great subject. thank so much.

Hello Devendra, Thank you very much for your easy tutorial on testing related.
I am in mobile app testing and need to automate app. Could you please help me on setting up Mobile Grid for automation for windows and Apple computer.
Also, is it can you help me to test android device in apple computer, can we configure appium to test in mac for android device and iOS device.

please mail me to :-

Hi, I am trying to search the elements from xpath but these are changing every time on webpage so is there any way to find elements other than name ??

You can search it by name and by any unique attribuye

Add new comment

This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.