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

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

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Что такое автоматизация тестирования с помощью 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. Тем не менее, эти концепции в некоторой степени применимы и к другим операционным системам, отличным от Windows.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выберите Sauce Data Center и оставьте ID пустым (Jenkins создаст его за вас). Поле Description также можно оставить пустым. Далее нажмите на 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:

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

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

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

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

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

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

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

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

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

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

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

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

mvn dependency:resolve

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

mvn test-compile

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

mvn test

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

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

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

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

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

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

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

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

Заключение

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

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

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

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