Skip to content
Field note

Mobile Automation: Why We Chose Appium

Introduction

June 26, 2017·2 min read·Avni Gupta, Axelerant Alumni/ Field correspondent
Mobile Automation: Why We Chose Appium

Introduction

There are many mobile automation tools in the market, like Appium, Calabash, MoneyTalk, Robotium, Selendroid, UIAutomator, UIAutomation, Frank and KIF. We evaluated several of these at Axelerant, and have chosen Appium as the best tool for us.

Let’s understand what the tool is all about, and what are its pros and cons.

While evaluating the above open source mobile automation tools, our checklist for requirements looked like this:

  1. Application source code should not be modified for test automation.
  2. Tests should run across simulators, emulators and real devices.
  3. Writing tests should not be limited to a particular language.
  4. Community support for the tool.

Appium offers automation of native and hybrid mobile apps. It is written using the JSON wire protocol, and interacts internally with apps using Selenium WebDriver and Node.js.

There are many advantages to using Appium. First, it is an open source mobile automation tool. Secondly, it can be written in any language, viz. Ruby, C# and Java, without the need to modify the apps for automation purposes. Third, Appium runs on numerous devices and emulators, making it the most scalable choice for mobile automation.

Appium Architecture

Appium’s Pros and Cons

Let's take a look at the advantages and disadvantages of using Appium:

Pros

  • It’s cross-platform. You can test Android as well as iOS devices. You can test a native app, a hybrid app and even a web app. The same test can work on multiple platforms. The experience would remain the same, irrespective of the platform you are automating (iOS or Android).
  • Appium allows communication between different apps.
  • Unlike other tools, Appium doesn’t require you to include any extra agents in your app to make it automation-friendly.
  • It is developed and supported by Sauce Labs and the community is pretty active.
  • Support for built-in apps (phone, calendar, camera).
  • Appium supports any web driver compatible language (Java, Object-C, Ruby, PHP, C#, JS with Node.js).

Cons

  • There is no direct support for toast messages.
  • Appium has limited support for mobile gestures.
  • Appium cannot be used for Android versions lower than 17.
  • Scripts are slow.
  • There’s no parallel execution. This limitation can be resolved if we execute our scripts in Sauce Lab’s mobile cloud, which at present supports running scripts on multiple iOS simulators at the same time.

Appium Pre-Requisites

Here are the pre-requisites for using Appium:

  1. Java JDK
  2. Android SDK
  3. Maven
  4. Eclipse IDE: Android Developer Tools & Maven Plugin
  5. XCode (when installing on MAC)

Appium setup details can be found here on the official site. And you can check out the Appium discussion forums here.

Did you find Appium helpful, or is there another mobile automation tool you prefer to work with? Share your opinion with us in the comments below.

Companion brief

Bring this dispatch into a working session - one page in, scoping memo out.

Brief Foyer
Pressure-test "Field note" with a partner

If this dispatch landed, bring it into a room with us.

The argument in "Mobile Automation: Why We Chose Appium" is ours - but every situation breaks the argument differently. Send the situation in one page and a named partner will reply inside one business day with a scoping memo: where the argument holds for you, where it bends, and what we'd actually do in the first two weeks.

One-pager · Field note

By submitting this form you acknowledge that you have read Axelerant's Privacy Policy and agree to its terms.

Replied to by a named partner within one business day.