Yet another SWE's quiet place for ranting

Appium VS Calabash

elgris

OK, what do we have here? A mobile application written with Cordova for 2 platforms: iOS and Android. I’m lazy, I don’t want to check that all critical functionality works as expected after each release. In 2 platforms. And I don’t want anyone to do that, because manual work is stupid in IT. So I need a proper tool to test both applications automatically, so I have enought free time to explore the world around me :)

TL;DR #

Decided to go with Calabash at the end.

Constraints #

All right, let’s define following constraints:

There is not so many frameworks that satisfy constraint 1. So I ended up with two of them: Appium and Calabash.

What’s good about Appium? #

What’s wrong with Appium? #

info: [debug] Responding to client with error: {"status":7,"value":{"message":"An element could not be located on the page using the given search parameters.","origValue":""},"sessionId":"eccc5b20-a5dd-4f41-9ce8-c16964e3f64c"}
info: <-- POST /wd/hub/session/eccc5b20-a5dd-4f41-9ce8-c16964e3f64c/element 500 754.829 ms - 179

There is an issue about that: https://github.com/appium/appium/issues/4131

What’s good about Calabash? #

What’s wrong with Calabash then? #

What’s at the end? #

I decided to go with Calabash. Despite it does not have Javascript bindings (yet), writing Ruby code was easy and fun. Actually, by the end of first day I have successfully set up all required infrastructure, ran first test on both platforms and prepared a tutorial for the rest of the team.

I would recommend Appium to those who makes native applications. With hybrid apps (at least Cordova-based) I ran into bunch of problems. Perhaps those problems could be solved, but learning Ruby was much faster than solving those artificial problems.

Categories: