Docker + Selenium Webdriver в
рамках Continuous Integration
О себе
• С 2008 по 2014 год работал
системным администратором.
С сентября 2014 по настоящее
время работаю специалистом по
Автоматизированному
тестированию в компании
ISSoft(Минск). Активист
сообщества COMAQA.BY.
Что такое “Docker” и зачем он нужен ?
Создать волшебную кнопку для развёртывания приложения где угодно.
“To build the “button” that enables any application to be build and deployed on any server, anywhere”
Цитата из:
http://www.slideshare.net/dotCloud/why-docker
Матрица судьбы
QA Automation QA Manual USER CI Server
DB ? ? ? ?
Selenium ? ? ? ?
Maven ? ? ? ?
JAVA ? ? ? ?
Automation Scripts ? ? ? ?
Аналогия проблемы
Торговый флот ЖД транспорт Автотранспорт Погрузчик
Товары Автопрома Контейнер Контейнер Контейнер Контейнер
Насыпные товары Контейнер Контейнер Контейнер Контейнер
Жидко образные
товары
Контейнер Контейнер Контейнер Контейнер
Хрупкие товары Контейнер Контейнер Контейнер Контейнер
Пищевые
продукты
Контейнер Контейнер Контейнер Контейнер
Продолжаем аналогию
Грузовой контейнер Software Container
Любое наполнение Содержит любой груз. Содержит любое приложение
Любое место Корабль, порт, поезд, тягач,
склад.
Ноутбук, VM, Выделенный
сервер.
Изоляция Можно использовать любое
имеющееся пространство.
Предотвращение конфликтов
библиотек и окружения.
Эффективность Единый стандарт перемещения, известно как хранить.
Разделение обязанностей Отправитель упаковывает груз.
Перевозчик доставляет.
Получатель распаковывает.
Разработчик пишет код.
Docker доставляет.
Пользователь запускает.
Отличия Docker от Виртуальных машин
Почему Docker? В чём профит?
Docker VM
Старт Быстрый старт Долгий старт
Ресурсы Низкое потребление Высокое потребление
Гостевая ОС главная Нету гостевой ОС Гостевая ОС думает что она
единственная
Каскадирование Возможно Иногда невозможно
Docker: versioning, reuse, sharing
Docker: versioning, reuse, sharing
Docker: versioning, reuse, sharing
https://hub.docker.com/u/selenium/
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”] // указываем команду по умолчанию
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
CI и Docker
Docker Plugin для Jenkins
Docker Plugin
Динамическое предоставление “slaves”
Запуск билда
Удаление “slaves”
Official Jenkins docker image
https://hub.docker.com/_/jenkins/
$docker pull Jenkins
$docker run –p 8080:8080
Спасибо за внимание.

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

  • 1.
    Docker + SeleniumWebdriver в рамках Continuous Integration
  • 2.
    О себе • С2008 по 2014 год работал системным администратором. С сентября 2014 по настоящее время работаю специалистом по Автоматизированному тестированию в компании ISSoft(Минск). Активист сообщества COMAQA.BY.
  • 3.
    Что такое “Docker”и зачем он нужен ? Создать волшебную кнопку для развёртывания приложения где угодно. “To build the “button” that enables any application to be build and deployed on any server, anywhere” Цитата из: http://www.slideshare.net/dotCloud/why-docker
  • 4.
    Матрица судьбы QA AutomationQA Manual USER CI Server DB ? ? ? ? Selenium ? ? ? ? Maven ? ? ? ? JAVA ? ? ? ? Automation Scripts ? ? ? ?
  • 5.
    Аналогия проблемы Торговый флотЖД транспорт Автотранспорт Погрузчик Товары Автопрома Контейнер Контейнер Контейнер Контейнер Насыпные товары Контейнер Контейнер Контейнер Контейнер Жидко образные товары Контейнер Контейнер Контейнер Контейнер Хрупкие товары Контейнер Контейнер Контейнер Контейнер Пищевые продукты Контейнер Контейнер Контейнер Контейнер
  • 6.
    Продолжаем аналогию Грузовой контейнерSoftware Container Любое наполнение Содержит любой груз. Содержит любое приложение Любое место Корабль, порт, поезд, тягач, склад. Ноутбук, VM, Выделенный сервер. Изоляция Можно использовать любое имеющееся пространство. Предотвращение конфликтов библиотек и окружения. Эффективность Единый стандарт перемещения, известно как хранить. Разделение обязанностей Отправитель упаковывает груз. Перевозчик доставляет. Получатель распаковывает. Разработчик пишет код. Docker доставляет. Пользователь запускает.
  • 7.
    Отличия Docker отВиртуальных машин
  • 8.
    Почему Docker? Вчём профит? Docker VM Старт Быстрый старт Долгий старт Ресурсы Низкое потребление Высокое потребление Гостевая ОС главная Нету гостевой ОС Гостевая ОС думает что она единственная Каскадирование Возможно Иногда невозможно
  • 9.
  • 10.
  • 11.
    Docker: versioning, reuse,sharing https://hub.docker.com/u/selenium/
  • 12.
    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”] // указываем команду по умолчанию
  • 13.
    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
  • 14.
  • 15.
    Docker Plugin дляJenkins Docker Plugin Динамическое предоставление “slaves” Запуск билда Удаление “slaves”
  • 16.
    Official Jenkins dockerimage https://hub.docker.com/_/jenkins/ $docker pull Jenkins $docker run –p 8080:8080
  • 17.