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.