Docker + Selenium Webdriver в рамках Continuous Integration

17
Docker + Selenium Webdriver в рамках Continuous Integration

Transcript of Docker + Selenium Webdriver в рамках Continuous Integration

Page 1: Docker + Selenium Webdriver в рамках Continuous Integration

Docker + Selenium Webdriver в рамках Continuous

Integration

Page 2: Docker + Selenium Webdriver в рамках Continuous Integration

О себе

• С 2008 по 2014 год работал системным администратором.С сентября 2014 по настоящее время работаю специалистом по Автоматизированному тестированию в компании ISSoft(Минск). Активист сообщества COMAQA.BY.

Page 4: Docker + Selenium Webdriver в рамках Continuous Integration

Матрица судьбыQA Automation QA Manual USER CI Server

DB ? ? ? ?

Selenium ? ? ? ?

Maven ? ? ? ?

JAVA ? ? ? ?

Automation Scripts ? ? ? ?

Page 5: Docker + Selenium Webdriver в рамках Continuous Integration

Аналогия проблемыТорговый флот ЖД транспорт Автотранспорт Погрузчик

Товары Автопрома Контейнер Контейнер Контейнер Контейнер

Насыпные товары Контейнер Контейнер Контейнер Контейнер

Жидко образные товары

Контейнер Контейнер Контейнер Контейнер

Хрупкие товары Контейнер Контейнер Контейнер Контейнер

Пищевые продукты

Контейнер Контейнер Контейнер Контейнер

Page 6: Docker + Selenium Webdriver в рамках Continuous Integration

Продолжаем аналогиюГрузовой контейнер Software Container

Любое наполнение Содержит любой груз. Содержит любое приложение

Любое место Корабль, порт, поезд, тягач, склад.

Ноутбук, VM, Выделенный сервер.

Изоляция Можно использовать любое имеющееся пространство.

Предотвращение конфликтов библиотек и окружения.

Эффективность Единый стандарт перемещения, известно как хранить.

Разделение обязанностей Отправитель упаковывает груз.Перевозчик доставляет.Получатель распаковывает.

Разработчик пишет код.Docker доставляет.Пользователь запускает.

Page 7: Docker + Selenium Webdriver в рамках Continuous Integration

Отличия Docker от Виртуальных машин

Page 8: Docker + Selenium Webdriver в рамках Continuous Integration

Почему Docker? В чём профит?Docker VM

Старт Быстрый старт Долгий старт

Ресурсы Низкое потребление Высокое потребление

Гостевая ОС главная Нету гостевой ОС Гостевая ОС думает что она единственная

Каскадирование Возможно Не возможно

Page 9: Docker + Selenium Webdriver в рамках Continuous Integration

Docker: versioning, reuse, sharing

Page 10: Docker + Selenium Webdriver в рамках Continuous Integration

Docker: versioning, reuse, sharing

Page 11: Docker + Selenium Webdriver в рамках Continuous Integration

Docker: versioning, reuse, sharinghttps://hub.docker.com/u/selenium/

Page 12: Docker + Selenium Webdriver в рамках Continuous Integration

Docker: automated build• # Dockerfile

• FROM Ubuntu: 14.04 //в качестве базового образа //используем Ubuntu 14.04

• ENV opa = 123 key=eprst // задаём переменные окружения• RUN apt-get install –y mysql-server // добавляем необходимый софт• ADD start.sh //добавляем необходимый файл• CMD [ “/start.sh”] // указываем команду по умолчанию

Page 13: Docker + Selenium Webdriver в рамках Continuous Integration

Build Selenium Grid с помощью Docker

• $ docker pull selenium /hub \\ скачиваем image hub• $ docker pull selenium/node-chrome \\ скачиваем image node-ch• $ docker pull selenium/node-firefox \\ скачиваем image - ff • $ docker run -d --name hub –P selenium/hub \\ run hub• $ docker run –d -- link hub:hub –P -- name chrome selenium/node-chrome• //run chrome hub • $docker run –d – link hub:hub –P – name firefox selenium/node-firfox

Page 14: Docker + Selenium Webdriver в рамках Continuous Integration

CI и Docker

Page 15: Docker + Selenium Webdriver в рамках Continuous Integration

Docker Plugin для Jenkins

Docker Plugin

Динамическое предоставление “slaves”

Запуск билда

Удаление “slaves”

Page 16: Docker + Selenium Webdriver в рамках Continuous Integration

Official Jenkins docker image

https://hub.docker.com/_/jenkins/

$docker pull Jenkins$docker run –p 8080:8080

Page 17: Docker + Selenium Webdriver в рамках Continuous Integration

Спасибо за внимание.