В прошлых обсуждениях мы рассмотрели запуск тестов через браузер в Docker-контейнере и научились проводить удалённый запуск тестов на сервере, успешно интегрировав этот процесс в нашу систему непрерывной интеграции и доставки (CI/CD). Сегодня мы рассмотрим возможность выполнения этих тестов в различных браузерах.
Предварительная настройка Java
❗Я настоятельно рекомендую ознакомиться со статьями, упомянутыми ранее. В них я последовательно вношу изменения в проект и настраиваю его для удалённого запуска.❗
В рамках работы над проектом мы создали отдельный репозиторий для удалённого запуска наших тестов. Это готовый шаблон для запуска тестов через контейнер Docker. Вы можете найти его, скачав по ссылке ниже. Ветка называется «RemoteWebDriver».
Что мы имеем. У нас есть инициализация Chrome driver. То есть мы сможем запустить наши тесты через браузер Chrome. Для начала давайте добавим возможность запускаться через другие браузеры.
Мы уже разбирали с вами данную тему, только запускали тесты в разных браузерах локально.
Также чтобы корректно работал класс после прохождения тестов, его тоже нужно изменить.
Также просто добавили вариации с разными браузерами.
Предварительная настройка Docker
С самим докером мы также знакомы и нет ничего сложного загрузить нужный контейнер, где мы сможем запускать тесты в браузере Chrome.
- Команда для загрузки нужного образа
docker pull selenium/standalone-chrome
- Команда для запуска контейнера от нашего образа
docker run --rm -d -p 4445:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome
После этих команд у вас будет загружен нужный образ
И нужный контейнер
И запуск наших тестов будет выглядеть следующим образом
mvn clean test -DUrlChrome=http://localhost:4445/wd/hub
Мы создали системную переменную -DUrlChrome специально, чтобы иметь возможность изменять адрес до нашего контейнера, задавая его в командной строке при запуске.
Теперь мы создадим ещё одну переменную, которая позволит нам указывать желаемый браузер.
В итоге наша команда запуска выглядит следующим образом.
mvn clean test -Dtest=JAVATest#Attribute -DUrlChrome=http://localhost:4445/wd/hub -Dbrowser=Chrome
-Dtest=JAVATest#Attribute - указываем запуск одного теста
-DUrlChrome=http://localhost:4445/wd/hub - адрес до нашего контейнера
-Dbrowser=Chrome - указываем, что тесты нужно запустить через браузер Chrome.
Можем вывести отчёт и посмотреть, что тест прошёл успешно.
allure generate target/allure-results --clean
Запуск в браузере FireFox
Для запуска в другом браузере нам нужно загрузить другой образ.
docker pull selenium/standalone-firefox
И также немного изменится запуск контейнера. Укажем другой порт, чтобы не было конфликтов
docker run -d -p 4446:4444 -v /dev/shm:/dev/shm selenium/standalone-firefox
И сам запуск тестов будет выглядеть следующим образом:
mvn clean test -Dtest=JAVATest#Attribute -DUrlChrome=http://localhost:4446/wd/hub -Dbrowser=FireFox
Тесты успешно запустятся, но уже в браузере FireFox.
В следующей статье покажу ещё один способ запуска тестов через разные браузеры в Docker.
Полезные статьи, которые помогут освежить знания
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!