Браузерные E2E-тесты в Docker

Написание E2E-тестов для проверки работы проекта из фронтенда и API. Тестирование интерфейса ReactJS-приложения в браузере в Docker-контейнере.

  • 00:00:52 - Типы тестов
  • 00:08:34 - Расположение E2E тестов
  • 00:10:08 - Behavior Driven Development
  • 00:12:14 - Gherkin Syntax
  • 00:19:38 - Выбор E2E фреймворка
  • 00:22:50 - Установка CucumberJS
  • 00:25:53 - Написание тестового сценария
  • 00:30:55 - Проверка стиля для тестового кода
  • 00:32:25 - Браузерный эмулятор Puppeteer
  • 00:34:43 - Установка браузера в Docker
  • 00:39:31 - Объект тестового мира World
  • 00:43:16 - Запуск тестового браузера
  • 00:46:01 - Открытие целевых страниц
  • 00:47:39 - Подключение пакета expect chai
  • 00:48:39 - Проверка элементов по селекторам
  • 00:50:10 - Использование data-атрибутов для селекторов
  • 00:53:33 - Повторное использование step-ов
  • 00:54:48 - Параметризованные шаги
  • 00:56:52 - Генерация скриншотов при ошибках
  • 01:00:40 - Сохранение отчётов тестирования
  • 01:05:08 - HTML-отчёты с cucumber-html-reporter
  • 01:10:32 - Параллельный запуск
  • 01:12:08 - Таймауты и повторы
  • 01:13:54 - Дымовые Smoke тесты
Скрытый контент
Комментарии (13)
Руслан

Спасибо, отличное видео!!

Ответить
Александр Кулик

Спасибо. Все супер. Единственный момент для винды s WSL не работает команда docker-compose, ей нужно docker-compose.exe. Если кто-то знает как решить проблему, кроме как банальной замены, пожалуйста поделитесь.

Ответить
ХОРХОЙ

попробуйте сделать ссылку ln -s "полный путь к docker-compose.exe" "полный путь к папке со ссылками типа /usr/bin"/docker-compose

Ответить
Arunas

Спасибо.

Ответить
Bondarenko Alexandr

Отличный урок! Спасибо!

Ответить
fedot

Спасибо, Дмитрий, материал бесценен, а будет ли про хранение картинок аукциона где-нибудь в S3 ? Наверняка ведь есть какой-нибудь готовый докер образ под такую важную тему.

Ответить
Олег

Ставите minio, добавляете пакеты thephpleague/flysystem + thephpleague/flysystem-aws-s3-v3 и вперёд.

Ответить
fedot

Спасибо!

Ответить
Дмитрий Елисеев

Да, хранилища будут. Для их эмуляции FTP или S3 хранилищ для локальной разработки как раз подключают образы вроде stilliard/pure-ftpd или minio.

Ответить
fedot

Спасибо, отлично.

Ответить
Павел

Спасибо, хороший урок! Есть вопрос, для e2e тестов используется ли практика приводить БД в первоначальный вид перед каждым сценарием? Чтобы один сценарий не мог повлиять на результаты другого. Безусловно, в этом случае у нас проявляются недостатки. Падает производительность, и мы не можем использовать параллелизм, по причине того, что каждый сценарий будет обнулять базу, которая в 1 экземпляре. И здесь нужно извращаться и каждый сценарий как-то обрабатывать отдельным изолированным экземпляром приложения. Или просто отказываемся от параллелизма, что совсем убьет скорость запуска таких тестов. Либо e2e нужно продумывать так, чтобы минимизировать сайд-эффекты?

Ответить
Дмитрий Елисеев

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

Ответить
Анатолий

Тут как с ansible, очень поверхностно вышло. В целом понятно что и зачем делается, но не детально. По этим двум темам хотелось бы отдельные уроки.

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий