Directory Image
This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with our Privacy Policy.

5 features of Appium tool for both iOS and Android platforms that stands out

Author: Michael Wade
by Michael Wade
Posted: May 03, 2016

The main concept of Appium is that native apps should not need an SDK and should be able to use preferred test frameworks and tools. Appium thus allows to automate any mobile app, native or hybrid, developed from any language and any framework.

It uses the JSON wire protocol to interact with iOS and Android along with

Selenium WebDriver It is this interaction between Selenium client libraries and node.js server which works together with the mobile application. One of the core features of Appium is that the test codes can be written in any framework or language without having to modify them. Appium is able to run on a variety of devices and emulators making it one of the most apt choices for mobile automation.

Appium on iOS

Apple provides an application called instruments which is used to perform a lot of activities like profiling, controlling and building iOS apps. It also has a component for automation where javascript commands can be written using UIAutomation APIs to interact with the AppUI. To automate iOS Apps, Appium makes use of these libraries.

In context of a command life cycle, the Selenium WebDriver sends a command in the form of JSON via http request to the Appium Server. The Appium Server understands the automation context and sends the command to the Instruments command server. This further waits to be picked up by the Instruments command client and execute it in Bootstrap.js in the iOS environment. Once the command is executed, this message is sent back to the Appium server by the command client. This cycle repeats itself until all the commands get executed.

Appium on Android

The cycle in Android is similar in to iOSl. Here Appium proxies the command to a UIAutomator test case running on the device. The UIAutomator is Android’s native UI automation framework which supports running JUnit test cases from the command line directly into the device. Although it uses Java as the programming language, but Appium makes it run from any of the WebDriver supported languages. Unlike iOS, here the Bootstrap.jar is in place of Bootstrap.js. It represents the test case when compiled in java.

On getting launched, it spawns a TCP server. Here, the TCP server resides in the device and the client resides in the Appium process. This is exactly opposite to the way it is is iOS.

The pros and cons of Appium

  • All the complexities here are under the Appium Server. This makes the whole experience same for an automation developer irrespective of the platform being automated.
  • Appium opens up the door to cross platform
mobile testing . This makes it possible to execute the same test on multiple platforms.

  • Appium can automate Native, Hybrid and Web mobile applications.
  • Appium uses UIAutomator for Android which only supports Android SDK platform. Fro older APIs, Selendroid is available. This may not be taken as a limitation, but can be considered as an overhead in the configuration.

Conclusion

The Appium architecture has grown continuously with new feature additions and is constantly under regression. Hence a fair amount of rearchitecture is under consideration to solve these issues and migrate the codebase to JS which is easier to understand and work with.

About the Author

Michael works for Cigniti Technologies, which is the world's first Independent Software Testing Company to be appraised at CMMI-SVC Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.

Rate this Article
Leave a Comment
Author Thumbnail
I Agree:
Comment 
Pictures
Author: Michael Wade

Michael Wade

Member since: Aug 26, 2015
Published articles: 94

Related Articles