Docker для автотестов: заметки от QA-инженера Creative

Docker для автотестов: заметки от QA-инженера Creative

Всем привет! Меня зовут Николай, я QA-инженер компании Creative. Мы с коллегами-тестировщиками часто обсуждаем какие-то проф моменты, и недавно дискутировали по поводу пользы Dockerа. Решил поделиться своими мыслями с читателями vc.ru. Статья будет полезна как начинающим тестировщикам, так и тем, кто давно в теме. Разберём теорию, познакомимся с командами, а в конце статьи – поделюсь небольшой хитростью, которая здорово упростит вам жизнь. Погнали!

Docker, контейнеры и зависимости

Итак, что такое docker простыми словами? Это система для автоматизированного управления и развёртывания приложений в изолированных контейнерах. Звучит сложно, но мы лишь затронем ту часть, которая требуется для запуска автотестов.

Чтобы начать работу с докером, установите его на компьютер. Для вашего удобства прикрепляю инструкцию с офсайта.

Главная фишка dockerа – это возможность запускать тесты в любых браузерах в изолированных контейнерах.

Контейнер – это изолированное пространство со своими настройками. Под настройками имеется в виду файл, который находится в вашем проекте с неизменным названием «Dockerfile» (илл. 1):

Иллюстрация 1
Иллюстрация 1

В контейнеры мы можем установить любые зависимости. Например, нам нужно запустить автотесты, используя Java8, Maven и Chromedriver. Для того чтобы все работало, нужно просто прописать эти зависимости в конфигурационном файле.

Немного о конфигурации Dockerfile

Есть два основных понятия – образ и контейнер. Так вот, образ – это шаблон, из которого создаётся контейнер. То, чем будет наполняться контейнер, определяет dockerfile.

Сам файл имеет предустановленные инструкции, которые выполняют определённые действия:

  • FROM – это образ, из которого мы будем создавать наш контейнер.

  • RUN – это команда, которая устанавливает нужные зависимости.
  • VOLUME – создает точку монтирования для работы с хранилищем.
  • COPY – копирование в контейнер папок и файлов.
  • WORKDIR – рабочая директория CMD. Команда с аргументами, которую нужно выполнить после запуска контейнера (илл.2):

Иллюстрация 2
Иллюстрация 2

Образы популярных программ или платформ, таких как базы данных, веб-серверы, компиляторы и операционные системы, вы можете найти в Docker Hub – репозитории для докер-образов.

Волшебный Docker-compose

Теорию мы разобрали, теперь перейдём к одной хитрости, о которой я говорил в самом начале статьи.

К примеру, нам нужно обновить свои знания по базам данных. Но мы не хотим идти по стандартному пути и устанавливать postgres, указывать порты и тд. На помощь нам придёт файл docker-compose.yml. Это файл, который лежит в корне нашего проекта с расширением yml.

Для того чтобы нам поднять на локалхосте postgres c админкой, нужно создать проект. В нём будет один файл с двумя контейнерами, расположенными на порту 8080. Наполнение этого файла будет выглядеть так (илл. 3), а страница с официальным образом из Docker Hub находится здесь.

Иллюстрация 3
Иллюстрация 3

Вместо выводов

По моим наблюдениям и личному опыту, тенденцией 2022 года стало активное использование dockerа для развёртывания своего софта. Так можно сказать про каждый третий или четвертый проект.

Для нас – тестировщиков – это означает, что высоконагруженные проекты, которые требуют частых релизов, лучше всего покрывать автотестами, прогнанными в docker-контейнерах.

Знание этой технологии улучшает понимание того, как именно работает инфраструктура. А значит, вы повышаете свою эффективность и эффективность всего проекта. На этом у меня всё, буду рад ответить на ваши вопросы!

44