Автоматизация – это новый джаз. Автоматизируется множество вещей, включая рассылки по электронной почте, google-формы, сбор информации из интернет-источников и даже тестирование программного обеспечения. В этом учебном пособии по Appium я расскажу об Appium – инструменте, который по целому ряду причин стал фаворитом в индустрии автоматизации тестирования мобильных приложений. Ниже перечислены темы, рассматриваемые в этом учебном пособии по Appium:
- Что такое Appium?
- Философия Appium
- Типы мобильных приложений
- Appium vs Selendroid vs Robotium
- Архитектура Appium
- Установка Appium с помощью Android Studio
Начнем наш туториал по Appium с краткого знакомства с самим инструментом.
Что такое Appium?
Appium – это кроссплатформенный инструмент автоматизации тестирования с открытым исходным кодом. Он используется для автоматизации тестовых случаев. Инструмент ориентирован на приложения для Android и iOS и был ограничен только областью тестирования мобильных приложений. Недавно Appium объявил о поддержке тестирования настольных приложений для windows.
Appium разработан и поддерживается компанией sauce labs. В настоящее время распространяется версия Appium 2.10. Appium начинал свою работу как сервис тестирования на основе командной строки, который можно было установить с помощью node.js. В своей последней версии, получившей название “Appium desktop”, компания выпустила надежный и усовершенствованный инструмент с интуитивно понятным графическим интерфейсом. Appium desktop поставляется с инспектором элементов приложений, который мы рассмотрим далее в этом руководстве по Appium.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Философия Appium
Appium – это восходящая звезда на рынке автоматизации мобильного тестирования. Когда речь заходит об автоматизации мобильных тестов, во многом индустрия все еще выясняет, какие подходы лучше. В случае с Appium им помогли уроки, извлеченные из ранних решений по автоматизации, которые работали не так хорошо, как хотелось бы. Некоторые из этих уроков хорошо обобщены в философии Appium, состоящей из четырех пунктов:
- Вам не следует перекомпилировать ваше приложение или вносить в него изменения, чтобы автоматизировать его.
- Не следует привязываться к определенному языку или фреймворку для написания и выполнения тестов.
- Фреймворк для автоматизации мобильных устройств не должен изобретать велосипед, когда речь идет об API для автоматизации.
- Фреймворк для автоматизации мобильных устройств должен быть открытым как по духу, так и по названию!
Типы мобильных приложений
Как уже говорилось в первом абзаце, вы, наверное, поняли, что Appium способен работать с самыми разными приложениями. Давайте разберемся в различных типах приложений.
Нативные приложения
Приложения, которые разрабатываются с учетом особенностей конкретной платформы, называются нативными приложениями. Нативные приложения разрабатываются с использованием специальных наборов средств разработки и, как правило, ориентированы на производительность. Нативные приложения обычно выбирают вместо кроссплатформенных, если бюджет на разработку не является проблемой. Некоторые преимущества нативных приложений заключаются в следующем
- Отличная производительность.
- Как правило, они выглядят утонченно и аккуратно.
- Нативные приложения легко интегрируются с аппаратным обеспечением устройства.
- Большинство нативных приложений имеют интуитивно понятный UI/UX.
Примерами нативных приложений являются Spotify, Snapchat, Pinterest, Skype.
Веб-приложения
Эти типы приложений были очень известны, пока не появилась концепция нативных приложений. Веб-приложения, как следует из названия, работают через браузер. Поскольку они работают в браузере, то, как правило, не требуют инсталляции, а процесс их разработки является недорогим с точки зрения бюджета. Поскольку приложение разрабатывается не для конкретной платформы, для его создания используются такие технологии, как HTML/CSS/JavaScript.
Ниже приведен список преимуществ веб-приложений
- Низкая стоимость разработки.
- Легче поддерживать.
- Веб-приложения не нуждаются в верификации на маркетах приложений.
- Отсутствие необходимости установки и обновления для пользователей.
- Быстрая доставка обновлений до пользователя.
Примерами успешных веб-приложений являются Ali Express, Flipkart Lite и Washington Post.
Гибридные приложения
Гибридные приложения объединяют в себе лучшие качества нативных и веб-приложений. Хотя эти приложения можно загрузить из магазина Play и получить доступ ко всем функциям устройства, внутри они фактически представляют собой веб-приложение. Они разрабатываются с использованием таких простых технологий веб-разработки, как HTML и CSS. Это позволяет им работать на любой платформе.
Ниже приведен список преимуществ гибридных приложений.
- Для управления ими требуется только одна кодовая база.
- Разработка приложения не занимает много времени.
- Легко масштабируются на другую платформу.
- Доступ к полным возможностям устройства, как и у нативного приложения.
Примерами гибридных приложений являются OLA, Basecamp, Instagram, Yelp и др.
Appium vs Selendroid vs Robotium
В этой статье мы рассмотрим архитектуру и дизайн Appium.
Архитектура Appium
Appium – это HTTP-сервер, написанный на node.js, который создает и обрабатывает несколько сессий WebDriver для различных платформ, таких как iOS и Android. Appium запускает на устройстве “тестовый пример”, который порождает сервер и слушает прокси-команды от главного сервера Appium. Тестировщик пишет свои тестовые сценарии, которые выполняются на устройстве или эмуляторе, отправляя их в виде запросов на сервер Appium. Каждый производитель, например iOS и Android, имеет свой способ и механизм запуска тестового сценария на устройстве. Таким образом, Appium как бы взламывает его и запускает тестовый пример после получения команд от сервера Appium.
Как работает Appium в iOS:
На iOS Appium передает команды скрипту UIAutomation, запущенному в среде Mac Instruments. Apple предоставляет приложение под названием “instruments”, которое используется для выполнения различных действий, таких как профилирование, контроль и создание iOS-приложений, но в нем также есть компонент автоматизации, где мы можем написать некоторые команды на JavaScript, которые используют UIAutomation API для взаимодействия с пользовательским интерфейсом приложения. Appium использует эти же библиотеки для автоматизации iOS-приложений.
На рисунке выше показана архитектура Appium в контексте автоматизации iOS. Если говорить о жизненном цикле команды, то он выглядит следующим образом: веб-драйвер Selenium выбирает команду из кода и отправляет ее в виде JSON через HTTP-запрос на сервер Appium. Appium-сервер знает контекст автоматизации, например iOS и Android, и отправляет эту команду на командный сервер Instruments, который будет ждать, пока командный клиент Instruments (написанный на node.js) подхватит ее и выполнит в bootstrap.js в среде инструментов iOS. После выполнения команды командный клиент отправляет сообщение обратно на сервер Appium, который фиксирует все, что связано с командой, в своей консоли. Этот цикл продолжается до тех пор, пока не будут выполнены все команды.
Как Appium работает в Android:
В случае Android ситуация практически аналогична: Appium передает команду тестовому сценарию UIAutomator, запущенному на устройстве. UIAutomator – это встроенный в Android фреймворк автоматизации пользовательского интерфейса, который поддерживает запуск тестовых примеров JUnit непосредственно на устройстве из командной строки. В качестве языка программирования он использует Java, но Appium позволяет запускать его с любого из поддерживаемых WebDriver языков.
На приведенной выше диаграмме видно, что вместо bootstrap.js здесь находится bootstrap.jar, который представляет собой наш тестовый пример, скомпилированный на Java. При запуске он порождает TCP-сервер. Здесь TCP-сервер находится внутри устройства, а клиент – в процессе Appium, что прямо противоположно тому, как это происходит в iOS.
Установка Appium с помощью Android Studio
Ни одно руководство по Appium не будет полным без гайда по установке. Вот как можно установить Appium с помощью android studio.
1. Загрузите следующие.
2. Установите Java на свою систему. Не забудьте установить переменные окружения!
3. Установите Android Studio на свою систему, запустив программу установки, а затем создайте новый проект.
4. Извлеките клиентскую библиотеку. Сохраните их отдельно в файле вместе с jar-файлами Appium.
5. Переключитесь на вид проекта в Android studio.
6. Теперь выберите файлы, которые вы извлекли на шаге 4, и поместите их в папку lib в каталоге app. Затем выделите их все и добавьте в качестве библиотеки.
7. После добавления файлов в качестве библиотеки в папке app должен появиться файл build.gradle. Дважды щелкните на нем, а затем пересоберите проект. Успешная пересборка проекта означает, что вы установили Appium на свою систему с помощью Android studio.
На этом мы заканчиваем данный учебник по Appium.
Следите за другими статьями этого цикла, в которых будут рассмотрены другие аспекты тестирования программного обеспечения.
Перевод статьи «Appium Tutorial — A Complete Guide To Instal & Use Appium».
Пингбэк: Чек-лист для мобильных приложений на Android