Mobile Testing - Appium Framework

Appium is an open source mobile app test automation framework and tool, used for the purpose of testing the mobile native, web and hybrid applications built in Android and iOS, and primarily supports Macintosh and Linux platform.

It is a cross platform automation tool and may prove to be more useful and productive in testing the apps targeted for the multiple platforms, especially the web-view based apps. Appium is built and based on the selenium technology viz. selenium APIs. It facilitates the advantage of writing test scripts in any programming language. Further, it can be used with all other types of test framework such as NUnit.

How Appium is related to Selenium?

A tester well versed and efficient in using selenium tool will find appium easy to use and run the test scripts. Appium is almost similar to selenium, with the difference of types of software application supported and tested by these tools. Selenium is used to test the web based applications whereas appium tests the mobile native, web and hybrid applications viz. android and iOS applications.

In addition, appium android and iOS drivers are built on the top of selenium web driver API to interact with the android and iOS applications. Commands and features used in appium and selenium are almost same, like in selenium, selenium IDE is used to record and playback whereas in appium, appium inspector supports the feature of record and playback for all platforms except windows.

Pre-requisites for Appium

Standalone installation and setup of appium is not enough to run and execute mobile test scripts. Appium requires other essential tools and resources which needs to be installed, setup or to be on the machine or system along with the appium installation, to successfully carry out the mobile app testing using appium framework. These pre-requisites are:

  • JAVA SDK(1.6 or more)
  • Eclipseas an IDE for writing code.
  • Selenium Jar Files
  • Java-Client, as a separate library files to support advance functionalities.
  • Appium Server
  • Node JS, which although comes along with Appium, but separate installation is preferred.
  • Android SDK, a separate bundle of files. Android automation is not possible without Android SDK.
  • Microsoft .Net, which works as a backend support. It comes in windows 8 and may be installed separately.
  • APK files, usually for native and hybrid mobile applications, whereas for web application, chrome is there which by default comes along with the Android.
  • Real Android Devices for testing mobile android apps.
  • PDANET, which automatically download drivers required (if missing or needed) to connect device to the system using USB.
  • GenyMotion, an optional tool used for virtual device or emulators.

Basic Architecture

Appium uses HTTP protocol, where tests to be interfaced with the appium uses http libraries and JSON to send HTTP request for creating HTTP sessions. When the new HTTP session gets created, Node JS will transfers the commands to platform drivers which are active. Accordingly, the commands are executed either on real device or on emulators. The client i.e. the device or the emulator responds back to the appium server with the results in the form of HTTP response, which is subsequently logged by the appium server.

Appium Limitations

  • Limited or no support for mobile gestures.
  • Limited support for Android Versions<4.1.