6 minutes to read
Top open source android automation tools
Mykhailo Ralduhin
Senior QA Engineer
Most of the population of our planet has a mobile device. And this is all potential customers for different companies. Obviously, many companies, for this reason, want to have a mobile application to reach the largest number of potential customers. Therefore, a big role is given to testing these applications and experience shows that more than half of users delete the application if they find even a minor bug in it. For these purposes, a large number of tools have been created that can automate the process of testing mobile applications. Below is a description of the main ones.
Appium
Cross-platform tool for automated testing, works in many programming languages. The only requirement is that an HTTP request must be created. Has an easy process of setting up and running tests. The application code does not need to be changed in any way to make testing possible. Works for iOS and Android, on real devices and emulators.
Appium for mobile automation is followed next rules:
Large spectrum of the supported languages
Parallel execution of tests on several devices using Selenium Grid
Easy modification on the server part
Use a standard automation specification and API
Robotium
Developed by Renas Reda. This platform is released under the Apache 2.0 license. Lets you to check various Android functions. It is possible to test hybrid and native applications. There is also a TestDroid Recorder, which uses JavaScript to generate scripts based on the recording of a manual passage of the script. Also to Robotium it is possible to connect an additional library ExtSolo, which adds the possibility of autoscaling.
Benefits of Robotium:
No need to write code, when navigating from one activity to another activity.
Automatic delays and timings
Able to handle multiple android activities.
You will spend less time to write tests as the API is simple
Fast test-case execution
Calabash
Developed by Xamarin and compatible with Cucumber. It is intended for teams that use the BDD workflow (behavior-based development). The tool offers an easy way to develop functions in parallel with their practical testing. Calabash is used by both developers and testers. This site testing automation tool provides comprehensive information and reports for testers and developers.
Automation testing advantages using Calabash:
Calabash is written in Ruby.
Gherkin Syntax used like it in Cucumber
The testing on the real devices is supported
Selendroid
Another tool for testing a variety of applications for Android with the ability to record user steps. Works great with various emulators and simulators, supports hot-swappable device mode. Active development, companies such as eBay, Facebook, Red Hat and Salesforce regularly add new functionality.
Benefits of Selendroid:
Selendroid can interact with multiple Android devices (emulators or hardware devices) at the same time
UI elements can be found by different locator types
Full integration as a node into Selenium Grid for scaling and parallel testing
Same concept for automating native or hybrid apps.
Fully compatible with JSON Wire Protocol/Selenium 3 Ready
The weakness of the Selendroid is that is slow and on machines with 4GB RAM or less, it will be unusable.
UIAutomator
UIAutomator is developed by Google and comes with the Android SDK. UIAutomator is an analog of Apple's UIAutomation tool for testing Android applications. Android SDK provides the following tools to support automated functional testing of the user interface.
As and other tools, UiAutomator has some benefits and weaknesses:
Can reproduce a complex sequence of user actions
Can run several times and on different devices without changing any Java code
Can use hardware buttons on devices
Can be used on device displays with different resolution
Hard to use with OpenGL and HTML5 applications because these apps have no Android UI components.
Takes time-consuming to write JavaScript
MonkeyRunner
Lets you to perform functional testing of the application by providing an API for device management. MonkeyRunner is more low-level than Robotium, and does not require the use of code in comparison with Robolectric. MonkeyRunner is not limited - with it you can build systems that control android-devices through the UI (and not only). MonkeyRunner uses Jython and scripts or test scripts can be written in Python or written to a user using a recorder.
MonkeyRunner advantages:
MonkeyRunner is really portable. it easy to use with Linux, Mac and Windows.
MonkeyRunner easy to setup and you can work easily cross many different devices and emulators
Using MonkeyRunner you can measure performance of the application
With MonkeyRunner you will know what caused the crash
MonkeyTalk
MonkeyTalk is a powerful complete functional testing tool for mobile testing, which serves for writing tests for Android and iOS. This tool is intended for mobile testing only. MonkeyTalk is fairly easy to learn due to detailed guides with explanations and screenshots. Can automate tests for native, mobile, and hybrid iOS and Android apps from simple "smoke tests" to advanced test suites.
MonkeyTalk advantages:
It is a powerful complete functional testing tool.
Work with real devices and emulators.
Phones and tablets are supported, either tethered or over the network.
It supports looping concept, so the command can be looped using csv file.
Have good sides like cross-platform tests, API, open source license.
And as a result the choice of a tool for automated testing depends first of all on the requirements of the project, and then on everything else. There is no panacea. As well as there is no guarantee that after a while new technologies will not be included in the project, support of which in the already existing tool is not provided, or there will be a rejection of old technologies or both that together, which will require the search for a new tool in addition or To replace the existing one with all the ensuing consequences.