Appium Mobile Automation Testing

By Claudio Calderon

What is Appium?

Appium is an open source mobile automation tool that provides support for iOS, FirefoxOS and Android applications, supporting hybrid applications as well.

Why Appium?

Being an open source tool gives Appium a huge advantage in terms of cost effectiveness, but is not the only advantage that it provides to a mobile quality assurance team. Appium supports the three main mobile platforms listed above with the capability of running any tests on either the existing simulators for such platforms and also the capability to run over the actual devices connected to the host computer where the Appium framework is running.

In terms of learning processes, Appium stands ahead as it supports the major client libraries (Java, Ruby, Python, PHP, JavaScript, and C#) to handle Appium’s extensions with WebDriver protocol seamlessly. This provides a low learning curve as the testers are able to select the language that suits them best, allowing full access to back-end APIs and DBs from test code.

Basics of Appium

The tool itself took certain advantages from Selenium WebDriver JSON Wire Protocol, allowing users to run the tests with the desired mobile capabilities through Appium. This enables the users to run the same code on Android and IOS devices.

Appium Mobile Automation Testing

Cons

UI elements can be an issue sometimes as Appium is unable to recognize all the elements. UI Automator has normal access on labels, e.g. text, description… etc., but when some elements share the same text, indexes need to be added for instantiations. An example would be on a weather application when 2 items share a text like “cloudy” and “partially cloudy,” that “cloudy” portion of text shared by both labels can cause issues.

Gestures: Also, Appium gives limited support for gestures, like complex 4 fingers scroll down. So, if your app consists of simple gestures, like tap’s, you will be fine. Otherwise, you will need to prepare complex javascript code that will involve additional unestimated time.

iOS: On iOS, there is an issue related to the various device testing, as MacOS will allow you to run only one device per instance. So, if the purpose is to execute on several devices at the same time, then the same amount of Macs will be required.

Android: On Android devices, Appium UI Automator only supports Android SDK API 16 or above, making this a limitation for older API’s. This forces the users to access another open source library named Selendroid.

Conclusions

Appium is definitely the path to follow on mobile test automation. It is a solid tool with a wide framework interoperability. However, we all know that it is still under a heavy improvements development stage. However, this makes it even more attractive, as the best of Appium has not arrived yet and we are anxiously waiting for it.

Gorilla Logic hires only the best software engineers. Think you have what it takes to be a gorilla? Check out our careers section and follow us on twitter by clicking below.

GorillaLogic_Twitter

Originally published at Gorilla Logic.