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:
- Application source code should not be modified for test automation.
- Tests should run across simulators, emulators and real devices.
- Writing tests should not be limited to a particular language.
- 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’s Pros and Cons
Let's take a look at the advantages and disadvantages of using Appium:
- 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).
- 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.
Here are the pre-requisites for using Appium:
- Java JDK
- Android SDK
- Eclipse IDE: Android Developer Tools & Maven Plugin
- 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.