Инструменты: Jenkins - qa-guru/knowledge-base GitHub Wiki

Jenkins

Каждый день в компаниях по разработке ПО одновременно работает большое количество разработчиков, тестировщиков, исследователей и других технических специалистов. Такое большое количество людей необходимо как-то координировать и снабжать свежими версиями продукта.

Для этого используется Jenkins — веб-приложение, написанное на Java, для обеспечения непрерывной интеграции и непрерывной поставки ПО. Разработчики с помощью Jenkins могут настроить автоматическую сборку проектов и изменения репозитория с кодом, а тестировщики могут легко получить доступ к свежей версии продукта и автоматизировать процесс тестирования.

Работу Jenkins можно рассмотреть на примере большого конвейера на автомобильном заводе, который практически в автоматическом режиме собирает машины из отдельных запчастей, а в самом процессе участвует в разы меньше людей, чем при ручной сборке. Тестировщики используют Jenkins для автоматизации процесса тестирования. Тесты практически всегда состоят из множества модулей и инструментов, которые необходимо связать между собой и вызывать одновременно или поочерёдно. Вручную это бы занимало много времени и для этого понадобились бы отдельные специалисты в команде, а в больших проектах — целый отдел.

С Jenkins тесты можно запускать после выхода каждой новой версии продукта или по заданному расписанию. К тому же Jenkins будет запускать не только код автотестов, но и инструменты для аналитики тестов, сбора данных и формирования отчётов. Всё это будет происходить в автоматическом режиме. Поэтому, если в проекте необходимо каждый час запускать все тесты, это не надо будет делать вручную — можно лишь раз настроить CI-конфигурацию в Jenkins.

Как это работает

Запуск тестов на локальной машине обычно происходит через среду разработки. Она берёт исходный код тестов из памяти компьютера, запускает все подключенные библиотеки, собирает необходимые инструменты и прогоняет тесты в браузере. Всё это происходит на локальном компьютере и доступно одному тестировщику.

В случае с Jenkins тесты запускаются на выделенном сервере, актуальный код берётся из репозитория GitHub, а сами тесты прогоняются в Selenoid. В этом случае результаты тестов доступны не только автору кода, но и всем участникам команды, которые работают над проектом. Запускать тесты тоже может любой участник, что ускоряет разработку.

Установка

Jenkins представляет собой веб-приложение, поэтому его нельзя установить на свой компьютер в виде отдельного приложения. В компаниях обычно разворачивают собственный стенд для тестирования на базе Jenkins. Инструмент полностью бесплатный и обладает открытым исходным кодом, поэтому при необходимости и желании можно развернуть Jenkins и на собственном сервере.