Back to Resources


Posted June 10, 2016

Appium Bootcamp - Chapter 1

Learn how to use Appium to test mobile apps of all kinds - first of an 8-part series.



Before You Get Started

Appium is built to test mobile apps of all kinds (native, hybrid, and mobile web), has client libraries written in every popular programming language, it’s open source, works on every prominent operating system, and best of all – it works for iOS and Android.

But before you jump in with both feet, know that there is a bit of setup in order to get things up and running on your local machine.

A Brief Appium Primer

Appium is architected similarly to Selenium – there is a server which receives commands and executes them on a desired node. But instead of a desktop browser, the desired node is running a mobile app on a mobile device (which can be either a simulator, an emulator, or a physical device).

In order for Appium to work, we will need to install the dependent libraries for each device we care about.

Initial Setup

Testing an iOS app? Here’s what you’ll need:

For more info on supported Xcode versions, read this.

Testing an Android app? Here’s what you’ll need:

For more info on setting up the Android SDK and configuring an AVD, read this.

Next, you’ll need to install Appium. Luckily, there’s a handy binary for it ( for OSX and Appium.exe for Windows). This binary also happens to be a GUI wrapper for Appium.

Alternatively, if you want the absolute latest version of Appium and aren’t afraid to get your hands dirty, then you can install Appium from source and run it from the command line.

But if you’re new to mobile testing, then the one-click installer is a better place to start.

An Appium GUI primer

The Appium GUI is a one-click installer for the Appium server that enables easy configuration of your app and Appium.

Aside from the easy install, it adds a key piece of functionality – an inspector. The inspector enables a host of functionality, most notably:

  • shows you all of the elements in your app

  • enables you to record and playback user actions

While the inspector works well for iOS, there are some problem areas with it in Android on Appium at the moment. To that end, the Appium team encourages the use of uiautomatorviewer (which is an inspector tool provided by Google that provides similar functionality to the Appium inspector tool). For more info on how to set that up, read this.

More on inspectors and how to use them in a later post.

It’s worth noting that while we can configure our app within the Appium GUI, it’s not necessary since we will be able to do it more flexibly in code. More on that in the next post.

Making Sure Appium Is Setup

After you have your Appium one-click installer up and running, you can verify your setup by using it’s Doctor functionality. It is the button on the left of the Launch button. It is the one that looks like a doctor’s stethoscope.

Click on that, and it should output information in the center console window of the Appium GUI.

If you don’t see anything outputted, refer to this open issue.

What About A Programming Language?

Before you do a victory lap, you’ll also want to have chosen a programming language to write your tests in, installed said programming language, and installed it’s client bindings for Appium.

Currently, Appium has client bindings for Java, JavaScript, Objective C, .NET, PHP, Python, and Ruby.

The examples in this series will be written in Ruby. You can use version 1.9.3 or later, but it’s advisable to use the latest stable version. For instructions on installing Ruby and the necessary client libraries (a.k.a. “gems”), read this.


Now that you have Appium setup with all of its requisite dependencies, along with a programming language and Appium client bindings, we’re ready to load up a test app and step through it.

The Getting Started With Appium Series was developed by Dave Haeffner and Matthew Edwards.

Download the eBook

To access the rest of the bootcamp series, download the Appium eBook now.

Jun 10, 2016
Share this post
Copy Share Link
© 2023 Sauce Labs Inc., all rights reserved. SAUCE and SAUCE LABS are registered trademarks owned by Sauce Labs Inc. in the United States, EU, and may be registered in other jurisdictions.