Dominik Dary's Blog

calabash-android

GDG Devfest in Zurich

Yesterday and today I attended the Google Developer Group (GDG) DevFest in Zürich and I really enjoyed it! I have seen good presentations, met really nice people and I had great discussions. This afternoon I did a presentation about how to automate native Android apps using Calabash-Driver and how to leverage an existing Selenium Grid2 architecture to allow scaling and parallel testing. Here you find my slides of today’s presentation:

Howto inspect Android Activities

For writing good automated mobile end-to-end tests I personally prefer to use e.g. the IDs of the elements. For doing this, you can have a look at the application’s source code and analyze the corresponding layout.xml file. But sometimes, if e.g. on the screen are dynamic lists like search results displayed, it is quite helpful to inspect the dialog on the mobile device that is currently displayed. The Android platform has a tool called hierarchy viewer - which is working quite well.

Speed up the development of Calabash-Android tests

In one of my previous blog posts I described about how to use Calabash-Android in general. In today’s post I’m describing about how to speed up the development of automated mobile tests using Calabash-Android using and mostly configuring the interactive Ruby shell (IRB). IRB is a shell allows the execution of Ruby commands with immediate response, experimenting in real-time. This is pretty useful if you are about to automate an Android application screen that is part of an flow and you are in the process of finding for the UI elements the right commands e.

Calabash-Android

In my previous post I blogged about open source frameworks for mobile end-to-end testing and in the other past post I described about how to setup the Greenhouse sample app environment. In this post I would like to describe how to test an Android app with Calabash-Android, which was open sourced in the beginning of March. The basic architecture of Calabash is described in this figure, which I have taken from the Less Painful homepage: