Appium Tip #24: Best Appium Resources Online

Everything About Appium Test Automation

Dear Testdroiders,

As you know, Appium was originally built on the idea that developers (as well as testers and QA folks) could use their favourite tools, frameworks, and programming languages when creating automated tests for mobile apps. Appium has been an awesome open source project that many people have contributed and many have extended with other additional advanced features. That’s what we’ve been doing here at Testdroid and helped thousands of mobile developers using this great framework to make mobile app testing smooth, easy and feature-rich.

It’s time to look some of the best online resources to get help and make your Appium use yet more frictionless.


We’ve covered lots of different topics in Appium framework itself, installation, programming languages, tools, and provided tips, tricks and best practices in our Appium Tutorial – and this time we’ll list out few things that are essential when you are working with Appium. Some these things are must in your daily work and surely we’ll help to get the best out of your test automation effort as well as making things work instantly out-of-the-box. Do not forget to download this complete guide for Appium beginners and follow the instructions there to verify your Appium testing environment.

Appium Infrastructure, Real Devices and Cloud

It is always recommended to use real devices with Appium (like with other test automation frameworks too). This way you’ll find the real issues that end-users face when running your app on their devices.


Parallel Test Runs with Appium on Real Devices (unlimited no. of devices)

Tools & Utilities to Make Appium Use Easier

Especially if you are starting out with Appium and do not have much experience of similar test automation frameworks, it’s highly recommended to get all dependencies and especially those tools/utilities installed. You can use the following tools to make sure everything is accessible in your system:

Java SDK 1.8
The openjdk-8-jdk package is recommended and can be installed with the following command line call:

$ sudo apt-get install openjdk-8-jdk

Apache Ant
Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.

Apache Maven

Apache Maven is a dependency management and build system tool. Based on its concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.



tar xzvf apache-maven-3.3.9-bin.tar.gz

Ruby Version Manager
RVM (Ruby Version Manager) is a neat command-line tool which allows quick and easy installations, management of multiple versions and Ruby environments with interpreters and any set of gems. You can simply get it install with these instructions:

$ curl -sSL | bash -s stable
$ rvm install ruby
$ ruby -v

And it should point out the version of Ruby you are using and are set up with.

Ruby Package Manager and Ruby Dependency Manager

First, check what version of RubyGems you’ve installed and update it. This will also take care of Bundler update:

$ gem update --system
$ gem install --no-rdoc --no-ri bundler
$ gem update
$ gem cleanup

Check that RubyGems is higher than 2.1.5:

$ gem --version

Execute bundler at the Ruby example directory to install dependencies:

$ bundle install

Node.js and Node.js Package Manager (NPM)
Node.js is an efficient and lightweight JavaScript runtime and with its package ecosystem one of the largest open source library. Start checking first which version is installed on your machine:

$ node -v
It's recommended to run the latest but at least v0.10.32. If you don't have one, just update it with the following command:
$ sudo npm install npm -g

Alternatively, you can also download it manually and update.

Grunt – JavaScript Task Runner
Grunt is a JavaScript task runner and its ecosystem is already pretty large. There are hundreds of different plugins that can help you to automate various activities in your daily tasks. Again, check what version (if any) you have in use, update or install the latest one:

$ npm install -g grunt-cli

Learn more here on Working with an existing Grunt project.

Screen Shot 2016-05-03 at 1.34.48 PM

Platforms – Setting Up Development Tools


First of all, Appium required Mac OS X Lion (10.7+) or newer to run, and it’s always recommended to use the latest and greatest. When developing for iOS make sure your Xcode environment is properly set up. For instance, read How to Install Xcode, Homebrew, Git, RVM, Ruby & Rails on Mac OS X to get all specific details on how to setup Ruby with all depedencies, proper Xcode configuration etc. to get started with Appium for iOS. For Xcode requirements, there seems to be quite a lot of issues with older ones (6.x) so use the latest one and preferably with the latest iOS devices (9.3.1 at the moment).


This probably causes some discussion but setting up Appium for Android is easier that getting things working on Xcode/iOS. Just install the Android Studio. When this is done (and yes, it typically takes some time to install, configure and make sure all Android API levels are properly installed/set up) set $ANDROID_HOME environmental variable to point your Android SDK path. If you unzipped the Android SDK to /usr/local/adt/, for example, you should add this to your shell startup:

export ANDROID_HOME=“/user/path/here"

Video – How to Run Your Appium Tests

Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar from Testdroid Bitbar on Vimeo.

The Beginner’s Guide of Using Appium for Mobile App Testing

Learn all the basics about Appium, how to set it up and how to use it for mobile app testing.