Введение в Calabash


Введение в Calabash


В процессе углубления в изучении тестирования мобильных приложений у меня возникло желание изучить автоматизацию тестирования данного типа приложений.
Мобильные приложения имеют ряд особенностей, которые не позволяют использовать для тестирования обычные инструменты. Для изучения был выбран фреймворк Calabash.

По своей сути Calabash является драйвером, который управляет приложением на устройстве. В выбранном проекте используется связка Calabash+Cucumber.

Архитектуру Calabash можно увидеть в начале статьи.

Управление приложением происходит при помощи реализации действий пользователя. Учитывая специфику мобильных приложений это могут быть как жесты, касания, так и проверки на наличие текста, кнопок и многое другое.

Для использования Calabash необходимы:

  • apk-файл тестируемого приложения
Так же, для запуска тестовых сценариев на конкретном симуляторе необходимо передать параметр DEVICE_TARGET и ваши устройства должны находиться в одной локальной сети.

После установки всех необходимых компонентов можно подходить к написанию тестовых сценариев. 
Одними из важнейших команд Calabash являются команды Query, Tap и performAction
Query используется для поиска необходимых объектов и их свойств, tap – команда нажатия на объект, а также команда performAction – исполнение определенных действий (нажатие на кнопку «назад», «меню», проскроллить и тому подобное).
Для работы с запросом Query необходимо задействовать Calabash консоль. К примеру, нам нужно указать в шаге нажатие на кнопку "Arhive". Для этого выясняем какой объект имеет текст "Arhive". Пишем в командной строке : irb(main):008:0> query("* text:'Arhive'") .В результате узнаем, что объект с текстом «Settings» имеет id “menuSettings”. Теперь мы можем нажать на кнопку с соответствующим ID.
Поиск объектов можно отнести к наибольшим минусам автоматизации на Calabash. При изменении интерфейса многие локаторы не будут работать, да и их поиск происходит довольно сложно.
При написании тестов можно использовать уже готовые шаги, имеющиеся в Calabash - github.com/calabash/calabash-android/blob/master/ruby-gem/lib/calabash-android/canned_steps.md. Если же этого не хватает, то  можно использовать Rubi Api:
Пример описания тестового сценария:

Пример описания тестового сценария
В Calabash это будет выглядеть:  




Все выше описанное позволяет сделать вывод, что фреймворк Calabash является очень удобным для автоматизации тестирования мобильных приложений и может успешно использоваться даже новичками в автоматизации.

Связаться