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).
Примечания
- ↑ Руководство APPIUM по тестированию мобильных приложений для Android и iOS / Хабр. Habr. — «Appium — свободно распространяемый фреймворк для кроссплатформенного UI-тестирования.» Дата обращения: 20 июня 2025.
- ↑ Appium Project History - Appium Documentation. Appium documentation. — «История создания Appium.» Дата обращения: 20 июня 2025.
- ↑ Contributing to Appium - Appium Documentation. Appium contributing. — «Информация о сообществе и лицензии.» Дата обращения: 20 июня 2025.
- ↑ Appium Documentation - Appium Documentation. Appium 2.0 docs. — «Единый API на основе WebDriver.» Дата обращения: 20 июня 2025.
- ↑ Appium Documentation - Appium Documentation. Appium documentation. Дата обращения: 20 июня 2025.
- ↑ 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.
- ↑ Appium vs. Selenium: Comparing Open-Source Testing Tools. Kobiton blog. Дата обращения: 20 июня 2025.
- ↑ Appium Tutorial: A Detailed Guide To Appium Testing. LambdaTest. Дата обращения: 20 июня 2025.
- ↑ Getting Started - Appium. Appium getting started guide. Дата обращения: 20 июня 2025.
- ↑ Appium Pro: Working with Multile Webviews in Android Hybrid Apps. Appium Pro. — «Автоматизация гибридных приложений.» Дата обращения: 20 июня 2025.
| Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ». Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ». |