Skip navigation EPAM

Open Source Mobile Automation Solutions: Appium & Calabash

Open Source Software (OSS) is more in demand these days. People tend to think that the main reason behind this is that OSS is free. But this is not the main, let alone the only reason. The truth is that OSS can be modified for each individual’s needs and shared without any license violation. Hence, the word free is not solely related to cost.

In the world of mobile test automation, both Appium and Calabash are very popular when it comes to OSS. Here’s a brief overview of these tools from my experience in mobile automation. 

Both Appium and Calabash are based on client-server architecture. In terms of language support, Appium, which is supported by Selenium, supports Java, Javascript, Ruby, C# and Python.  Calabash is pure Ruby.  Appium uses Selenium server while Calabash has its own server. Furthermore, the way a project is set up is different for Android and iOS (separate configurations and projects) when working with Calabash. This is different than Appium where the same configurations work under a single project as common functions exist for Android and iOS.

The console in Calabash gives a better and more efficient way of interacting with the application compared to Appium. Certain features like flashing, touching, querying out the elements on the screen and entering text are good for working interactively. The Appium inspector is more suitable for getting the xpath, but performance issues may arise when using xpaths in mobile automation. Certain elements on the screen, which are sometimes hard to interact with when using Appium are easily handled by Calabash through its console, including the HTML5 part of the application that can be touched using CSS.

Touching on the aspect of Behaviour Driven Development (BDD), the example below doesn’t need code when working with the built-in BDD of Calabash because of the presence of some predefined steps to create tests.

For an Appium project, we can also choose to work with BDD, but the corresponding code for the above lines would need to be maintained in a step definition file.

Finally, the number of contributors for Appium is greater compared to Calabash, which implies it’s more likely that you can get help from the existing community of developers and testers when using Appium. Visit Appium and Calabash to explore the architecture of both.