Написание 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 тесты
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram

Спасибо, отличное видео!!
Спасибо. Все супер. Единственный момент для винды s WSL не работает команда docker-compose, ей нужно docker-compose.exe. Если кто-то знает как решить проблему, кроме как банальной замены, пожалуйста поделитесь.
попробуйте сделать ссылку ln -s "полный путь к docker-compose.exe" "полный путь к папке со ссылками типа /usr/bin"/docker-compose
Можно попробовать совместное использование $PATH для WSL. Еще как вариант, если у тебя Win Pro то поставить Docker Desktop, там интеграция уже с WSL.
Спасибо.
Отличный урок! Спасибо!
Спасибо, Дмитрий, материал бесценен, а будет ли про хранение картинок аукциона где-нибудь в S3 ? Наверняка ведь есть какой-нибудь готовый докер образ под такую важную тему.
Ставите minio, добавляете пакеты thephpleague/flysystem + thephpleague/flysystem-aws-s3-v3 и вперёд.
Спасибо!
Да, хранилища будут. Для их эмуляции FTP или S3 хранилищ для локальной разработки как раз подключают образы вроде
stilliard/pure-ftpd
илиminio
.Спасибо, отлично.
Вопрос по minio может кто сталкивался, есть два котейнера в одной сети апп и минио. Не получается добавить файл из апп, если
AWS_ENDPOINT=http://minio:9000
хотя по идее должно срабатывать. Нужно заходить в контейнер minio и смотреть урл апи который динамический API:http://192.168.16.2:9000
, если подставить его вenv AWS_ENDPOINT
то все срабатывает. Может кто знает как решить?? В браузереhttp://localhost:8900
консоль открывает, проблема именно если с прилаги пробуешь загрузить файлНиже докер-композе
У нас minio подключается в 60-ом эпизоде для загрузки бэкапа БД. И всё там работает.
Да, спасибо за ответ, уже разобрался. На самом деле все работает отлично из коробки, не внимательно изучил документацию к пакету который адаптер предоставляет. Нужно было добавить в конфиг пару строчек
Спасибо, хороший урок! Есть вопрос, для e2e тестов используется ли практика приводить БД в первоначальный вид перед каждым сценарием? Чтобы один сценарий не мог повлиять на результаты другого. Безусловно, в этом случае у нас проявляются недостатки. Падает производительность, и мы не можем использовать параллелизм, по причине того, что каждый сценарий будет обнулять базу, которая в 1 экземпляре. И здесь нужно извращаться и каждый сценарий как-то обрабатывать отдельным изолированным экземпляром приложения. Или просто отказываемся от параллелизма, что совсем убьет скорость запуска таких тестов. Либо e2e нужно продумывать так, чтобы минимизировать сайд-эффекты?
Да, оптимальнее делать любые тесты не мешающими друг другу. Для E2E тестов это важнее, так как система может состоять из нескольких сервисов и сбрасывать БД каждого сервиса снаружи будет не очень удобно.
Тут как с ansible, очень поверхностно вышло. В целом понятно что и зачем делается, но не детально. По этим двум темам хотелось бы отдельные уроки.
Спасибо. Я думал в Ларавел e2e это что-то космическое, но тут еще более полезное с Огурцом.
C cucumber ^8.0.0-rc.1 формирование имени файла скриншота через sourceLocation.uri и sourceLocation.line не работает. Выкрутился так (хотя детализация месторасположения ошибки только до сценария получается):
hooks.js
О. спасибо, тезка! Тоже столкнулся. И да, хотелось бы более полного раскрытия темы. Понятно что доки курить, но все же...
Или войти через: