20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства - qa-guru/knowledge-base GitHub Wiki

Установка Appium

Appium — кроссплатформенный фреймворк для автоматизации мобильных приложений как под управлением Android, так и под iOS. Appium бесплатный и распространяется с открытым исходным кодом. Работа фреймворка схожа с принципами работы Selenium WebDriver. Appium также получает HTTP-запросы в виде JSON и преобразует их в зависимости конкретной платформы.

Самый простой способ получить Appium — установить Appium Desktop. Для этого следует перейти на страницу релизов фреймворка в GitHub и скачать установщик под актуальную операционную систему.

Перед первым запуском необходимо перейти в меню «Edit Configuration» и указать путь до JDK и Android SDK. Инструкция по установке JDK доступна по ссылке.

Android SDK устанавливается автоматически вместе с Android Studio. Если вы уже устанавливали какую-либо IDE от JetBrains, то на компьютере должен быть JetBrains ToolBox. Необходимо открыть его, выбрать в меню Android Studio и установить. Если JetBrains ToolBox нет, то Android Studio можно скачать с сайта разработчика.

Android Studio

Android Studio — среда разработки приложений под Android и мобильную экосистему на базе Android. Менеджер SDK позволяет устанавливать SDK под разные версии Android и различные эмуляторы мобильных устройств. По умолчанию уже установлен SDK для Android 10 и эмулятор Pixel 4 XL.

Создание устройства

Для создания нового устройства необходимо перейти в меню «Device Manager» и выбрать опцию «Create Device». В открывшемся окне необходимо выбрать модель устройства, его параметры и далее сохранить выбор. После этого можно будет запускать эмуляцию устройства.

Appium Inspector

Appium Inspector — инспектор элементов интерфейса мобильных приложений, работающий на базе Appium Server. Для установки необходимо перейти страницу GitHub проекта, открыть вкладку «Релизы» и скачать последнюю версию установщика для актуальной операционной системы. После скачивания следует открыть файл и пройти шаги установки.

При настройке проекта в Appium Inspector необходимо передать параметры:

  • Remote Host — тот же, что в Appium Server;
  • Remote Port — тот же, что в Appium Server;
  • Remote Path — /wd/hub;
  • Desired Capabilities — параметры проекта.

Appium Inspector работает также, как инспектор в браузере. С помощью мышки можно выбирать элементы, получать их ID и другие параметры. Эти данные можно использовать для автоматизации тестов. Также важно учесть, что Appium Selector не обновляет состояния приложения самостоятельно. Поэтому после манипуляций в эмуляторе необходимо нажимать кнопку «Refresh Source & Screenshot».

Запуск теста

Готовые тесты можно запускать прямо из PyCharm. При этом в эмуляторе можно мониторит прохождения теста в реальном времени. Мобильные тесты отличаются от браузерных только системой, в которой тесты воспроизводятся.

Как запускать тесты на физических устройствах

Android Debug Bridge (ADB) позволяет запускать тесты не на эмуляторе, а на реальном физическом устройстве. Подключать смартфон можно с помощью USB-кабеля или Wi-Fi. Ожидаемо, что быстрее и стабильнее работает соединение через USB-кабель.

Важно отметить, что перед настройкой Android Debug Bridge необходимо убедиться, что на машине уже стоит Android Studio, Appium Server и Appium Selector.

Подготовка устройства

  1. На смартфоне необходимо перейти в настройки, открыть пункт параметров для разработчиков и активировать функцию «Отладка по USB»;
  2. После этого надо подготовить компьютер, чтобы он обнаружил подключенное устройство:
    • macOS: дополнительные настройки на требуются;
    • Chrome OS: дополнительные настройки на требуются;
    • Windows: при необходимости следует установить драйвер для OEM-устройств.

Подключение через USB

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

Чтобы убедиться, что компьютер обнаружил смартфон, следует выполнить команду adb devices. В списке должно появиться имя устройства.