Как использовать Jenkins для автоматизации тестирования

Как использовать Jenkins для автоматизации тестирования

Одной из важнейших составляющих конвейера непрерывной интеграции и непрерывного развертывания (CI/CD) является непрерывное тестирование, которое очень сложно автоматизировать.  Jenkins — это популярный инструмент с открытым исходным кодом для непрерывной интеграции (CI), который используется для автоматического тестирования и развертывания вашего кода.

Одним из преимуществ Jenkins является его гибкость. Однако это также может быть и его недостатком. Решение о том, какие методологии, плагины и инструменты использовать в паре с Jenkins, может оказаться непростым. Из этой статьи вы узнаете о том, как лучше всего использовать Jenkins и как его настроить.

Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ

Что собой представляет Jenkins?

Jenkins – это сервер автоматизации, который можно использовать для управления всеми этапами CI/CD. Благодаря поддержке множества тестовых фреймворков, плагинов и инструментов автоматизации, Jenkins также можно использовать для разработки и запуска автоматизированных тестов. Он выполняет тесты, а затем собирает информацию о найденных сбоях и ошибках.

У Jenkins полностью открытый исходный код, и он очень легко настраивается. У него есть удобный графический интерфейс для управления всеми процессами. Кроме того, его можно интегрировать с современными программами для совместной работы, такими как Microsoft TeamsAsana и Slack.

С помощью Jenkins вы можете планировать тесты (по времени) или запускать их по какому-либо условию, например, при успешном завершении сборки. Он также совместим со множеством инструментов управления исходным кодом и контроля версий, таких как GitGitHubи Azure DevOps Team Foundation.

Это лишь некоторые из возможностей автоматизации тестирования с помощью Jenkins.

Внедрение автоматизации тестирования с помощью Jenkins

Первым дело вам необходимо установить Jenkins. Для этого у вас должно быть:

В этом туториале вы будете использовать плагин Sauce Labs для внедрения автоматизации тестирования в ваш CI/CD-конвейер на базе Jenkins. Этот плагин упрощает настройку тестов, размещенных в Sauce Lab.

Чтобы интегрировать Sauce Labs с Jenkins, вам понадобится следующее:

  • Аккаунт в Sauce Labs
  • Имя пользователя аккаунта в Sauce Labs, ключ доступа и OnDemand URL

Настройка Java для Jenkins

Мы рассмотрим, как настроить Jenkins для компьютеров с операционной системой Windows, но эти концепции в некоторой степени применимы и к другим операционным системам.

Сперва вам необходимо загрузить и установить Java Development Kit (JDK). Jenkins совместим только с 64-битными версиями JDK 11 и 17.

Затем нужно установить необходимые переменные окружения.

Настройка и установка Jenkins для Windows

Перейдите на страницу загрузки и скачайте Jenkins для Windows:

Страница загрузки Jenkins. В списке доступных вариантов загрузок стрелка указывает на "Windows"

Затем воспользуйтесь официальной документацией Jenkins, чтобы настроить и установить его на вашем компьютере с Windows.

Запуск и использование Jenkins

Чтобы использовать Jenkins, запустите ваш браузер и перейдите по адресу http://localhost:8080/.

Прочитайте инструкции на экране, чтобы найти свой пароль администратора. Введите его и нажмите Continue (Продолжить).

Загрузка Jenkins займет несколько минут. Убедитесь, что вы подключены к интернету, а ваш брандмауэр не блокирует загрузку.

После успешной загрузки вы попадете на экран настройки, где сможете добавить плагины. Если вы впервые используете Jenkins, нажмите на Install suggested plugins. Вы можете заметить, что среди предложенных плагинов есть Git. Он понадобится вам позже для управления версиями.

После завершения установки Jenkins попросит вас создать первого пользователя-администратора. После заполнения формы нажмите кнопку Save and Continue (Сохранить и продолжить).

Форма для создания пользователя. Красная стрелка указывает на кнопку Save and Continue.

Вам будет предложено настроить URL-адрес Jenkins, но оставьте его как есть и выберите Save and finish (Сохранить и завершить). После нажатия на кнопку Start using Jenkins вы сможете настроить и интегрировать Git с Jenkins.

Добавление плагина Sauce Labs OnDemand в Jenkins

После того, как Jenkins будет готов к использованию в первый раз, он перенаправит вас на панель управления на главной странице.

Выберите Manage Jenkins на панели слева:

Главная страница сайта Jenkins. В панели слева выделен пункт Manage Jenkins.

Далее выберите Manage Plugins:

На странице Manage Jenkins справа выделена красным опция Manage Plugins.

Далее нажмите на Available plugins на левой боковой панели и введите “Sauce OnDemand” в строку поиска. В списке результатов установите флажок напротив Sauce OnDemand и выберите Install without restart (Установить с без перезагрузки).

На странице Plugin Manager помечены кружочками с цифрами: 1 - Available plugins в панели слева, 2 - "Sauce OnDemand" в строке поиска, 3 - галочка в чекбоксе Sauce OnDemand, 4 - кнопка Install without restart.

Перезапустите Jenkins после установки всех плагинов.

Создание учетных данных Sauce Labs

Чтобы найти свои учетные данные Sauce Labs, нажмите на значок учетной записи, расположенный на верхней панели инструментов, и выберите User Settings из выпадающего меню:

Веб-страница SauceLabs. Цифрой 1 помечен значок пользователя в верхней панели. Цифрой 2 помечен пункт User Settings в выпадающем меню.

Обязательно сохраните имя пользователя (username), ключ доступа (access key) и OnDemand URL.

Чтобы полностью интегрировать Jenkins с плагином Sauce Labs OnDemand, вам нужно создать учетную запись Jenkins Sauce Labs. А поскольку вы только что перезапустили Jenkins, вам может потребоваться снова войти в систему.

После повторного входа в систему выберите Manage Jenkins на левой боковой панели. Затем прокрутите страницу вниз до раздела Security и нажмите на Manage Credentials:

Веб-страница Manage Jenkins. Цифрой 1 помечен пункт Manage Jenkins в левой боковой панели, цифрой 2 - опция Manage Credentials в разделе Security.

Выберите System под Stores scoped to Jenkins:

Веб-страница Credentials. Красная стрелка указывает на слово System.

И нажмите на ссылку Global credentials:

Веб-страница System. Красная стрелка указывает на Global credentials.

Затем нажмите на Add Credentials  и выберите “Sauce Labs”.

Оставьте параметр Scope как есть и введите имя пользователя и ключ доступа из вашей учетной записи Sauce Labs.

Выберите Sauce Data Center и оставьте ID пустым (Jenkins создаст его за вас). Поле Description также можно оставить пустым. Далее нажмите на Create:

Веб-страница Global credentials. Цифрами помечены шаги: 1 - выбор Sauce Labs, 2 - Username, 3 - Access Key (внизу - указание проигнорировать предупреждение о плохом качестве имени пользователя или ключа доступа), 4 - кнопка Create.

Если вы вернетесь к экрану Credentials Management, то увидите, что Jenkins создал учетную запись Sauce Labs.

Создание теста

Это руководство содержит образец репозитория с простым примером на Java. Он использует Sauce Labs для перехода на сайт https://www.saucedemo.com и проверки его названия. Два наиболее важных файла в репозитории – это pom.xml и test class.

Так как тест выполняется с использованием Maven, в файле pom.xml содержится список всех необходимых зависимостей Sauce Labs и Selenium для правильной работы теста.

Склонируйте репозиторий и добавьте ваш URL OnDemand в эту часть кода:

/*
        * OnDemand URL found under User Settings in Account Settings
        * The following is just an example, add your own URL

*/

// URL url = new URL("<SAUCE_USERNAME>:<SAUCE_ACCESSKEY>@ondemand.eu-central-1.saucelabs.com:443/wd/hub");
URL url = new URL(ON_DEMAND); //Replace ON_DEMAND with your onDemand URL here or the test will not work 

Интеграция Git с Jenkins

После того, как вы создали свою учетную запись, вернитесь на панель управления и выберите Create a job в разделе Start building your software project:

Страница Dashboard. Красная стрелка указывает на опцию Create a job.

Введите название вашего проекта в поле Item name field и выберите Freestyle Project. Затем нажмите на кнопку OK в нижней части экрана:

Форма для ввода названия проекта. Красная стрелка указывает на поле для ввода имени. Вторая красная стрелка указывает на Freestyle project.

Jenkins потребует от вас ввести некоторые подробности о вашем проекте. Введите простое описание, например “Простой тестовый проект”. Затем перейдите на вкладку Source Code Management  на левой панели:

Страница Configuration. Цифрой 1 помечено поле для ввода описания проекта (Description), цифрой 2 - пункт Source Code Management в левой боковой панели.

Нажмите на кнопку Git, в результате чего откроется новая форма, в которой вам будет предложено добавить информацию о вашем Git-репозитории. Вставьте ссылку на ваш репозиторий GitHub в поле Repository URL. Затем нажмите на кнопку + Add, после чего откроется небольшое всплывающее окно Jenkins:

Страница Configuration, активна вкладка Source Code Management (помечена цифрой 1). В правой части цифрами помечены: 2 - радиокнопка Git, 3 - URL репозитория, 4 - кнопка +Add, 5 - всплывающее окно Jenkins.

Оставьте поля DomainKind и Scope как есть, и введите имя пользователя GitHub и пароль в соответствующие поля. Затем прокрутите страницу вниз и нажмите на Add:

В форме отмечены цифрами: 1 - Username, 2 - Password, 3 - кнопка Add.

После этого вы попадете на экран настройки, где вам нужно развернуть выпадающее поле в разделе Credentials и выбрать свои учетные данные GitHub.

Прокрутите вниз до раздела Branches to build. Там вы увидите, что в настоящее время значением по умолчанию является /master. Удалите это значение, и тогда Jenkins будет вынужден сканировать все ветки в репозитории. Если вы хотите, чтобы Jenkins отслеживал только определенную ветку, вы можете добавить сюда ее относительный путь (например, /main).

Далее прокрутите страницу вниз до раздела Build Environment и установите флажок на Sauce Labs Support, в результате чего откроется новая форма. Оставьте поле Enable Sauce Connect неотмеченным и щёлкните по выпадающему списку Credentials, выбрав ваши учетные данные Sauce Labs из списка:

Страница Configure, вкладка Build Environment. Цифрами отмечены: 1 - галочка в чекбоксе Sauce Labs Support, 2 - поле ввода Credentials.

Далее щелкните на поле WebDriver. Появится выпадающее меню со списком различных браузеров. Выберите браузеры, которые вы планируете использовать для тестирования. В этом примере используется последняя версия Microsoft Edge для Windows 10:

Страница Configure, вкладка Build Environment. Красная стрелка указывает на поле WebDriver.

Затем установите флажок  на Use latest version of selected browsers.

Оставьте все остальное как есть и прокрутите страницу вниз, пока не увидите раздел Build Steps.

Щелкните на Add build step и в выпадающем меню выберите Execute Windows batch command:

Выпадающий список. Первая стрелка указывает на его название - Add build step, вторая - на пункт Execute Windows batch command.

Должна появиться новая форма с текстовой областью и несколькими элементами управления. Сначала убедитесь, что все необходимые зависимости загружены и добавлены для теста. Затем введите в текстовую область команду mvn dependency:resolve.

Добавьте еще один шаг Execute Windows batch command, который будет использоваться для проверки правильности добавления ссылок. Для этого введите в текстовую область шага сборки команду mvn test-compile.

В последнем шаге мы запустим тест. Как и в предыдущих шагах, добавьте еще одну команду Windows batch execution и добавьте в текстовую область mvn test.

Раздел с шагами сборки должен выглядеть примерно так:

Страница Build Steps. Подряд идут три блока Execute Windows batch command с разными командами.

Теперь прокрутите страницу вниз и нажмите на Save. Это перенаправит вас на экран информации о конвейерах, где вы сможете запустить свой конвейер Jenkins, выполнить сборку и активировать тест. Нажмите на Build Now, чтобы запустить конвейер.

Щелкнув на сборку в разделе Build History, вы перейдете на экран свойств сборки.

На этом экране можно просмотреть все детали сборки. Лучший способ просмотреть детали каждого шага сборки – это выбрать вкладку Console Output:

Вкладка Console Output.

Отсюда можно просмотреть вывод консоли в виде обычного текста и скачать его. Затем вы можете использовать текстовый редактор, чтобы просмотреть информацию.

Вид Console Output.

Вы также можете просмотреть более подробную информацию о сборках и тестах на панели инструментов вашего аккаунта Sauce Labs. На панели слева в разделе Automated нажмите на Test Results. На главной странице появится список всех запущенных вами тестов. Если вы нажмете на последний из них, вы увидите примерно следующее:

Список запущенных тестов на вкладке Automated / Test Results

На этом экране вы можете увидеть все команды, которые выполнял ваш тест. Вы также можете просмотреть видео, как тест проходит на сервере Sauce Labs. Кроме того, вы можете ознакомиться с логами:

Просмотр логов отдельного теста

Что касается Jenkins, то вы можете добавить особые действия после сборки, такие как создание отчетов или сборка мусора. Кроме того, можно добавить триггеры сборки, которые будут автоматически запускать конвейер за вас, позволяя выполнять более сложные автоматизированные тесты.

Заключение

Благодаря Jenkins, автоматизировать процесс тестирования и сборки приложения стало проще простого. Но не каждый инструмент, который вы интегрируете с Jenkins, так же прост в работе. Организация эффективного тестирования может быть сложной задачей, особенно если вы пытаетесь использовать инструмент, который не имеет встроенной поддержки Jenkins (в виде плагина).

Перевод статьи «How to Use Jenkins For Test Automation».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *