Appium

Appium — свободно распространяемый фреймворк с открытым исходным кодом, предназначенный для автоматизации тестирования пользовательского интерфейса нативных, гибридных и веб-приложений на мобильных и настольных платформах[1]. Изначально проект был создан инженером Дэном Куэлларом в 2011 году под названием «iOSAuto», а в 2013 году его дальнейшую разработку начала финансировать Sauce Labs[2]. С 2016 года Appium входит в состав JS Foundation, а его развитие поддерживается международным сообществом и рядом коммерческих компаний[3].

Общие сведения
Appium
Тип Фреймворк автоматизации тестирования
Автор Дэн Куэллар
Разработчики Дэн Куэллар (изначально), Sauce Labs
Операционные системы Android, iOS, Windows, macOS
Первый выпуск август 2012
Состояние Активно разрабатывается и обновляется
Лицензия Apache License 2.0
Сайт appium.io

Функции

Appium стремится предоставить единый кроссплатформенный API, основанный на протоколе WebDriver, что позволяет писать автотесты единожды и запускать их на разных платформах[4]. Основные возможности фреймворка включают:

  • кроссплатформенную автоматизацию — поддержка мобильных (Android, iOS, Tizen), браузерных (Chrome, Firefox, Safari), настольных (Windows, macOS) и телевизионных (Roku, tvOS, Android TV, Samsung) приложений[5];
  • отсутствие необходимости модифицировать тестируемое приложение: для запуска тестов не требуется внедрение SDK или перекомпиляция, что позволяет воспроизводить реальные сценарии пользовательского взаимодействия[6];
  • поддержку большинства популярных языков программирования (Java, Python, JavaScript, Ruby, C#, PHP), использующих клиентские библиотеки Selenium WebDriver[7];
  • работу как с эмуляторами и симуляторами, так и с реальными устройствами, что расширяет спектр тестовых окружений[8];
  • гибкую архитектуру, включающую:
    • Desired Capabilities — пары ключ-значение, задающие параметры тестовой сессии;
    • платформенные драйверы (UiAutomator2, XCUITest и др.) для взаимодействия с конкретной ОС;
    • систему плагинов (с версии 2.0), позволяющую расширять базовый функционал;
    • графический инструмент Appium Inspector для изучения иерархии элементов интерфейса и ручного выполнения команд;
    • CLI-утилиту для установки драйверов, управления сессиями и интеграции в CI/CD-процессы[9].

Примеры использования

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

  • Java (Android). Автотест на JUnit открывает стандартное приложение-калькулятор на эмуляторе Android, выполняет сложение 3 + 9 и проверяет, что на экране отображается результат 12. Для установления соединения используются Desired Capabilities (например, platformName=Android, deviceName=emulator-5554, automationName=UiAutomator2), после чего объект AndroidDriver отправляет последовательность команд click() и считывает текст элемента id=result.
  • Python (Android). Аналогичный тест, написанный на модуле unittest, подключается к локальному серверу Appium (http://localhost:4723/wd/hub) через класс webdriver.Remote. В тесте 5 + 3 = 8 применяется явное ожидание появления элементов методом WebDriverWait, а локаторы задаются через AppiumBy.ID. Результат извлекается из поля id=formula и сравнивается с ожидаемым значением.
  • Гибридное приложение (WebView). При работе с гибридами тест переключает контекст драйвера с NATIVE_APP на WEBVIEW при помощи driver.getContextHandles() и driver.context(). После переключения можно использовать стандартные локаторы Selenium (By.id, By.cssSelector), а по окончании действий вернуться в нативный контекст[10].

Такие сценарии легко интегрируются в популярные CI-системы (Jenkins, GitHub Actions, GitLab CI) и позволяют запускать тесты параллельно на облачных фермах устройств (Sauce Labs, BrowserStack, LambdaTest).

Примечания

  1. Руководство APPIUM по тестированию мобильных приложений для Android и iOS / Хабр. Habr. — «Appium — свободно распространяемый фреймворк для кроссплатформенного UI-тестирования.» Дата обращения: 20 июня 2025.
  2. Appium Project History - Appium Documentation. Appium documentation. — «История создания Appium.» Дата обращения: 20 июня 2025.
  3. Contributing to Appium - Appium Documentation. Appium contributing. — «Информация о сообществе и лицензии.» Дата обращения: 20 июня 2025.
  4. Appium Documentation - Appium Documentation. Appium 2.0 docs. — «Единый API на основе WebDriver.» Дата обращения: 20 июня 2025.
  5. Appium Documentation - Appium Documentation. Appium documentation. Дата обращения: 20 июня 2025.
  6. GitHub - appium/appium: Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol. GitHub — appium/appium. Дата обращения: 20 июня 2025.
  7. Appium vs. Selenium: Comparing Open-Source Testing Tools. Kobiton blog. Дата обращения: 20 июня 2025.
  8. Appium Tutorial: A Detailed Guide To Appium Testing. LambdaTest. Дата обращения: 20 июня 2025.
  9. Getting Started - Appium. Appium getting started guide. Дата обращения: 20 июня 2025.
  10. Appium Pro: Working with Multile Webviews in Android Hybrid Apps. Appium Pro. — «Автоматизация гибридных приложений.» Дата обращения: 20 июня 2025.
© Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ».
Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ».