Согласно последнему изданию World Quality Report, 99% ИТ-руководителей и менеджеров используют принципы DevOps при развертывании своих приложений.
Одним из основных инструментов DevOps является автоматизация разработки, тестирования, доставки изменений. Благодаря ей тесты выполняются циклично и непрерывно; производительность специалистов увеличивается в несколько раз; автоматизируются длинные последовательности и операции, которые требуют тяжелых вычислений.
В результате грамотного внедрения автоматизации качество программного продукта увеличивается, а цикл разработки сокращается. При этом универсальных инструментов автоматизации не существует. Многое зависит от продукта, особенностей ИТ-решения, ваших ожиданий, временных и бюджетных рамок.
В сегодняшней статье мы поговорим о двух инструментах для
автоматизации тестирования, которые значительно упрощают работу QA-инженеров, – Docker и Ansible.
Ключевые термины
Docker - это программное обеспечение для автоматизации развертывания и управления приложениями в средах с поддержкой контейнеризации.
Используя контейнеризацию, оно превращается в легковесный инструмент, который позволяет:
- Упаковать программный продукт в контейнер;
- Перенести приложение на любой сервер, где есть Docker, и быстро запустить его.
Контейнер – один из ключевых способов изолированного запуска ОС с подключенной файловой системой из образа.
Selenium – инструмент для автоматизации выполнения тестов в браузерах.
Ansible - это платформа удаленного управления конфигурациями ПО, которая упрощает развертывание приложений.
Ansible приводит серверы удаленного доступа в нужное состояние, а администратор только описывает при помощи сценариев, как его достичь. Поэтому быстро переконфигурировать систему очень просто – достаточно внести пару строк в сценарий.
Преимущества docker
Инструмент Docker применяется для развертывания и изоляции приложений в среде виртуализации, реализации микросервисов.
Достоинства решения:
- Экономит ресурс. Контейнеризация Docker сокращает расходы и время, позволяет запускать несколько изолированных сред на одном хосте.
- Дает возможность развернуть изолированное тестовое окружение, не прерывая работу других.
- Может хранить настройки среды в системе контроля версий, что позволяет управлять их версионностью.
- Контейнер защищает продукт от нюансов конфигурации веб-серверов.
- Стандартизирует проводимые операции.
Из-за доставки в небольших контейнерах Docker упрощает и сокращает процесс развертывания приложений и сопровождения проектов (обнаруживает проблемы, возвращает к предыдущим версиям для их устранения), а также дает возможность разбить проект на маленькие независимые и удобные компоненты.
Как docker облегчает работу с selenium-сервером?
ИТ-специалисты, особенно инженеры по автоматизации, испытывают некоторые трудности при работе с Selenium. Docker помогает решить следующие из них:
- Для устранения ошибок Selenium-тестов на сервер не нужно инсталлировать разные браузеры или несколько версий одного браузера.
- При запуске установленного веб-браузера место на диске не заполнится содержимым кеша или временными файлами.
- Можно параллельно запустить тесты в разных программах, и окна не начнут конкурировать за фокус, несрабатывающие события и т.д.
- Изменение настроек браузера никак не повлияет на ранее работавшие тесты, а тем более не приведет к их падению.
Главная концепция Docker Selenoid состоит в том, чтобы запускать для каждой Selenium-сессии новый контейнер и останавливать его после окончания сессии, причем количество разных версий браузеров и время запуска не ограничены.
Возникающие проблемы можно решить Selenium-контейнерами, но для получения поведения, аналогичного Selenoid, в дополнение к Docker используется Ansible.
Преимущества ansible
Ansible – простой инструмент для написания сценариев автоматизации.
Ansible позволяет решать следующие задачи:
- Устанавливать, удалять и настраивать программное обеспечение;
- Управлять пользовательскими ключами и паролями;
- Создавать и удалять пользователей;
- Запускать скрипты, тесты;
- Создавать и удалять контейнеры, виртуальные машины.
Ключевые преимущества решения:
- Помогает методически обновлять состояние нод.
- Для описания конфигурационных файлов используется удобный для чтения формат YAML.
- На управляемые машины не устанавливается дополнительное ПО, соответственно, не инсталлируются уязвимые программы, а безопасность использования решения повышается.
- Код решения достаточно прост, что дает возможность писать дополнительные модули.
Как ansible позволяет автоматизировать работу с docker
Ansible предлагает удобное решение для автоматизации работы с Docker. Используя Ansible для автоматизации создания контейнеров и развертывания приложений, вы получаете следующие преимущества:
Гибкость
Модули Playbooks, которые применяются для выполнения сценариев в Ansible, могут использоваться на разных платформах. Если вы создаете контейнер, используя текстовый файл Dockerfile, то открыть свое приложение сможете только в Docker-контейнере. В то время как Ansible Playbook позволяет воспроизводить приложение в любой среде (Docker, Vagrant, в облаке и т. д.).
Контролируемость
Сценарии Ansible Playbooks легко повторять и контролировать. Изолированность контейнеров не избавляет ИТ-специалистов от необходимости понимать, как устроен контейнер, отслеживать потенциальные уязвимости и вносить изменения, если это потребуется.
Применение Ansible Playbooks дает возможность проверять состояние контейнера, устранять найденные уязвимости, определять, кем и когда были внесены изменения в код.
Универсальность
Ansible помогает управлять самим контейнером и всей средой, в которой он функционирует. В случае с Docker необходимо запускать хосты, настраивать и координировать работу облачных инфраструктур или отдельных машин, объединять в систему.
Резюмируя
Эффективным видится следующее применение решений: Ansible выполняет настройку всего, что находится вне контейнеров, а Docker используется для виртуализации отдельных приложений. Объединив обе технологии, QA-специалисты могут значительно упростить себе жизнь при работе в любой CI-среде.
Узнайте, нужна ли автоматизация тестирования для вашего программного продукта
на бесплатной консультации со специалистами компании «Точка качества».