Calabash Android Учебное пособие по инструменту тестирования
⚡ Умное резюме
Calabash Это фреймворк для приемочного тестирования с открытым исходным кодом, который имитирует реальные действия пользовательского интерфейса. Android и iOS-приложения, написанные простым и понятным языком. Cucumber сценарии, поддерживаемые определениями шагов на языке Ruby и сервером тестирования на стороне устройства.
Что такое Calabash?
Calabash является проектом с открытым исходным кодом Acceptance Тестирование фреймворк, позволяющий писать и выполнять тесты для iOS и Android Программы.
Это автоматизированная платформа для создания пользовательского интерфейса, позволяющая писать тесты на Ruby. Cucumber.
Calabash Работает за счет автоматического взаимодействия с пользовательским интерфейсом в мобильном приложении, например, нажатия кнопок, ввода текста, проверки ответов и т. д. Может быть настроен для работы на различных платформах. Android и устройства iOS, которые обеспечивают обратную связь и проверки в режиме реального времени.
⚠️ Примечание к версии: Microsoft прекратил свои взносы в Calabash после финальной версии iOS 11 и Android 8 релизов, и репозиторий calabash-android Теперь проект позиционирует себя как ищущий сопровождающего. Приведённое ниже пошаговое руководство сохранено в том виде, в котором оно написано, а современные замены описаны в последнем разделе.
Почему Calabash Автоматизация?
Перед установкой чего-либо полезно сопоставить преимущества предлагаемой платформы с затратами на её обслуживание.
| Преимущества | Недостатки |
| Это помогает увеличить пропускную способность/производительность. | Для написания сценариев автоматизированного тестирования необходимы навыки. |
| Улучшенное качество или повышенная предсказуемость качества | Отладка тестового сценария является серьезной проблемой. |
| Повышенная надежность (согласованность) процессов или продуктов. | В случае методов воспроизведения обслуживание тестирования обходится дорого. |
| Увеличение стабильности производства и снижение затрат на рабочую силу и затрат. | Сопровождение файлов тестовых данных затруднено, если тестовый сценарий проверяет больше экранов. |
Calabash и BDD
- Calabash is Разработка, управляемая поведением (BDD)Это то же самое, что и... Разработка через тестирование (TDD)Однако вместо создания тестов для описания структуры API, задается поведение приложения.
- BDD — это процесс, в котором участвуют несколько заинтересованных сторон, чтобы прийти к общему пониманию того, что необходимо построить.
- BDD помогает в создании правильного программного обеспечения и проектировании с точки зрения владельца бизнеса.
На приведенной ниже диаграмме показано, как Calabash Комплекс решений имеет многоуровневую структуру: от понятного для бизнеса файла описания функций на верхнем уровне до описания взаимодействия с устройством на нижнем.
Как установить Calabash
Calabash on Windows Для работы требуется установить четыре необходимых компонента в указанном порядке. Полностью выполните каждую часть перед началом следующей, поскольку гем calabash-android проверяет наличие Ruby и... Android SDK во время установки.
Часть I) Установка Java JDK – обратитесь к этому руководству – /install-java.html
Часть II) Загрузите и установите Ruby.
Шаг 1) Загрузите Ruby из... URL https://rubyinstaller.org/downloads
Шаг 2) Откройте исполняемый файл (.exe) и следуйте инструкциям на экране. После завершения установки вы увидите следующий экран. Нажмите «Готово».
Запустите командную строку с включенным Ruby Windows 10 и введите команду ниже.
ruby -v
В консоли отображается установленная версия интерпретатора, как показано ниже.
Часть III) Загрузите и установите Android
Шаг 1) Скачать Android Studio at https://developer.android.com/studio
Шаг 2) Откройте исполняемый файл (.exe), следуйте инструкциям на экране и завершите установку. После завершения нажмите кнопку «Готово».
Часть IV) Установка Calabash Android
Шаг 1) В консоли введите команду `gem install calabash-android`. Начнётся установка, которая займёт некоторое время.
Шаг 2) После завершения установки введите команду `calabash-android version`.
Работая с Calabash
После установки гема следующая задача — найти папку framework и понять, с какой структурой он поставляется.
Откройте папку «calabash-android-0.9.0». Он находится по пути C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Имена папок будут меняться синхронно с версией Ruby/Calabash, которую вы устанавливаете на свой компьютер.
Откройте папку скелета объекта. Обратите внимание на эту базовую структуру.
- Файл *.feature содержит сценарии, которые мы собираемся автоматизировать.
- Метод, используемый файлом функций, записан в файле *.rb внутри папки «step_definitions».
- Общие методы, настройки среды, установка приложений и перехватчики должны быть помещены в папку «Поддержка».
Уйти в отставку и создать приложение
- Calabash-android resign *.apk
- Calabash-android build *.apk
При переподписании подпись разработчика заменяется отладочным ключом, что позволяет тестовому серверу инструментировать приложение, а этап сборки создает этот тестовый сервер, как показано в приведенном ниже выводе консоли.
Подключите устройство к системе/Откройте эмулятор
Проверьте подключенное устройство. Введите команду
adb devices
Должен отобразиться список подключенных устройств. Если устройство отсутствует, выполните шаги отладки и сопряжения по USB, описанные в соответствующем разделе. Руководство по подключению ADB Решает большинство случаев.
Как найти локатор элемента
- Откройте консоль. Введите команду.
calabash-android console "APK Path" start_test_server_in_background
- Приведенная выше команда запустит приложение на устройстве. Чтобы найти локатор элемента, используйте следующую команду.
query "*"
Это отобразит все локаторы элементов на текущем экране. Тестировщики, предпочитающие визуальный инспектор, могут проверить ту же иерархию с помощью uiautomatorviewer.
Calabash Структура проекта и предопределенные этапы
Вместо того чтобы копировать папку с гемами вручную, фреймворк может сгенерировать для вас рабочий проект. Запуск генератора внутри каталога вашего проекта создаст стандартный файл. Cucumber планировка, которая каждый Calabash Ожидается, что номер люкс будет использован.
calabash-android gen
Сгенерированное дерево разделяет три основных аспекта набора инструментов BDD:
- функции/ — один из сценариев с «Огурцом» .особенность Файл для каждого пользовательского пути.
- features/step_definitions/ — методы Ruby, соответствующие каждой строке Gherkin, включая входящий в комплект файл calabash_steps.rb.
- функции/поддержка/ — конфигурация среды и механизмы установки, запуска и завершения работы приложения в каждом конкретном случае.
Входящий в комплект файл calabash_steps.rb имеет большее значение, чем кажется на первый взгляд. Он содержит большой набор готовых шагов на английском языке, поэтому в первом сценарии можно нажимать кнопки, вводить текст и проверять видимые строки, прежде чем будет написан хотя бы один пользовательский метод. Пользовательские шаги понадобятся только тогда, когда сценарий выйдет за рамки этих готовых фраз.
На начальном этапе стоит ознакомиться с двумя настройками на уровне проекта. Скриншоты по умолчанию сохраняются в текущем рабочем каталоге, а переменная среды SCREENSHOT_PATH перенаправляет их в другое место, что обеспечивает упорядоченность артефактов сборки на общем компьютере. Для взаимодействия с системными диалогами или другим приложением требуется бэкенд UIAutomator2, запускаемый с помощью команды start_test_server_in_background(with_uiautomator: true).
Создание новых сценариев
Откройте файл объекта и следующие строки
Feature: Login feature Scenario: As a valid user I can log into my app When I press "Login" And I enter my username And I enter my password Then I see "Welcome to coolest app ever"
Откройте файл определения шага и определите метод в файле *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Выполнить тестовый проект
Чтобы выполнить тестовый проект, используйте команду ниже
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Программа выводит информацию о каждом шаге по мере его выполнения, и при успешном завершении отображает итоговые данные по сценарию и шагам.
Общие Calabash Ошибки и способы их исправления
Большинство сбоев при первом запуске связаны с правилами упаковки и прав доступа, от которых зависит тестовый сервер, а не с самим сценарием. В таблице ниже показано соответствие наиболее часто встречающихся симптомов их задокументированным причинам.
| Симптом | Вероятная причина и способ устранения проблемы |
| Приложение аварийно завершает работу в тот же момент, когда начинается тестирование. | В APK-файле отсутствует разрешение android.permission.INTERNET, необходимое тестовому серверу для приема команд. Объявите это разрешение в файле. AndroidПересобрать файл Manifest.xml. |
| Кнопки и текст не реагируют на нажатия. | Параметр targetSdkVersion не указан. Добавьте запись uses-sdk, указывающую уровень SDK, для которого было собрано приложение. |
| Тестовый сервер не может подключиться к приложению. | APK-файл не был переподписан с использованием отладочного ключа. Выполните команду переподписи, затем выполните сборку заново перед запуском. |
| В момент выполнения программы устройства не отображаются. | Отладка по USB отключена или отсутствует драйвер. Убедитесь, что серийный номер отображается в выводе команды adb devices. |
| Выполнение шагов завершается с ошибкой "неопределенный шаг". | Формулировка Gherkin не соответствует ни одному регулярному выражению в step_definitions. Скопируйте предложенный фрагмент. Cucumber распечатывает и внедряет его. |
Две записи в манифесте исправляют первые две строки. Добавьте их перед повторной подписью APK-файла.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Сбои по истечении времени ожидания обычно связаны с факторами окружающей среды, а не с функциональностью. Медленный эмулятор, холодный запуск приложения или фоновая синхронизация могут привести к тому, что экран выйдет за пределы окна wait_for, поэтому увеличьте значение таймаута, прежде чем перезаписывать шаг, который на самом деле был правильным.
Is Calabash Поддерживается ли еще? Альтернативы для современного тестирования мобильных приложений.
Calabash Активная разработка прекращена. Microsoft прекратил вносить свой вклад после начала поддержки финальной версии iOS 11. Android После 8 релизов проект превратился в архивированную базу кода с открытым исходным кодом без сопровождающего. Существующие пакеты тестов по-прежнему работают на старых устройствах, но планируется начать работу над поддерживаемой платформой.
| Рамки | Платформа | Наиболее подходит для |
| Appium | Android и iOS | Кроссплатформенные пакеты программ в Java, PythonРуби или JavaСценарий, и ближайшая замена для Calabash . |
| Espresso | Android Важно | Быстрые внутрипроцессные тесты, написанные на Kotlin или Java самими разработчиками приложения. |
| XCUITest | только iOS | Родной Xcode апартаменты, поддерживаемый преемник вышедшего на пенсию UIAutomation framework. |
| Маэстро и Детокс | Android и iOS | Более новые проекты с открытым исходным кодом, направленные на повышение устойчивости к отслаиванию графена и разработку приложений на React Native. |
Сама концепция BDD легко переносится. Файлы функций Gherkin остаются точно такими же, как есть, и меняются только тела определения шагов, потому что Cucumber располагается над драйвером, а не внутри него. Команды, осуществляющие миграцию, обычно сохраняют файлы функций, но переписывают шаги Ruby в соответствии с ними. Appiumи использовать тот же самый мобильное тестирование матрица устройств и автоматизация тестирования Они уже запущены по этому конвейеру.
















