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

Описание изображения

CI/CD это примерно постоянное тестирование и объединение усилий различных команд для ускорения выпуска программного обеспечения с максимальным качеством. Вкратце конвейер CI/CD можно описать как сценарий, определяющий рабочий процесс выпуска. Но наиболее важной частью здесь является автоматизация каждого участка конвейера, что также включает в себя автоматизацию этапа тестирования.

Для ускорения цикла тестирования нам необходимо интегрировать пакет автоматизации с конвейером CI, давайте попробуем разобраться в этом подробнее в следующем разделе.

CICD-поток

Зачем нам конвейеры непрерывной интеграции с автоматизацией?
Внедрение Agile-процессов увеличило количество сборок программного обеспечения, что предполагает регулярную фиксацию изменений кода для мастера, но тестирование этих сборок каждый раз вручную практически невозможно.

Вот где нам нужно объединить два мира: QA и CI Pipeline. Сначала мы должны убедиться, что все наши тестовые примеры автоматизированы, и у нас есть готовый набор тестов. Теперь, когда у нас есть готовый автоматизированный пакет, следующая задача — интегрировать его в наши конвейеры CI. Теперь возникает вопрос: зачем нам выполнять интеграцию CI?

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

Автоматизация тестирования в конвейере CI/CD
В этом разделе мы интегрируем Automation Suite с заданием Jenkins, чтобы при необходимости мы могли запускать наши наборы тестов из конвейера или даже планировать их.
Обязательное условие для запуска:
– Пакет автоматизации в testNG xml – Доступ к серверу Jenkins с действительными учетными данными

ШАГ – 01

Интегрируйте пакет testng.xml с pom.xml. Для этого нам нужно передать путь набора testng.xml внутри тега suiteXmlFiles. Указанный здесь путь — это путь пакета testng xml, используемого в демонстрационном проекте. Вам нужно будет использовать путь в соответствии с набором, расположенным в вашей установке.

тег pom.xml:

ресурсы\testNG_xml\RegressionSuite.xml

ШАГ – 02

Перейдите к пути к проекту автоматизации и откройте командную строку, как показано ниже, имя проекта — «Задача», и мы открыли местоположение cmd @project:

ШАГ – 03

Введите цель maven для теста как: «mvn clean test» в командной строке и нажмите ENTER. Это выполнит все тестовые сценарии, присутствующие в нашем наборе, и предоставит статус выполнения.

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

ШАГ – 04

Перейдите к Дженкинсу, нажмите «Новый элемент», как показано на снимке экрана ниже. Этот новый элемент поможет нам создать новое задание Jenkins, в которое мы сможем интегрировать пакет автоматизации, в котором есть все тестовые сценарии для набора регрессии.

Описание изображения

ШАГ – 05

Укажите имя для задания, на приведенном ниже снимке экрана мы указали имя проекта как «UiAutomationG11» и выберите «Maven Project», нажмите кнопку «ОК». Нам нужно понимать, что, поскольку наша среда автоматизации находится в Maven, поэтому мы выбираем проект Maven, если вы используете Gradle, вы должны выбрать соответствующий.

Примечание. Всегда предоставляйте осмысленное имя проекту с надлежащим соглашением об именах.

Описание изображения

ШАГ – 06

Перейдите к сборке. Выберите «Вызвать цели Maven верхнего уровня», а затем введите цели как «чистый тест» и поместите путь pom.xml вашего проекта в раздел «POM», как показано ниже. Теперь нажмите на кнопку «Сохранить», которая находится в левой нижней части.

Помните, что, поскольку мы используем его для демонстрации, наш pom.xml находится на нашем локальном компьютере, и мы указываем путь к проекту в разделе POM, но если вы пытаетесь реализовать на уровне проекта, вам необходимо интегрировать репозиторий github. ссылка в Jenkins, поэтому код будет извлечен из репо напрямую.

Описание изображения

Шаг – 07

Чтобы запустить пакет, нажмите кнопку «Создать сейчас», как показано ниже. Как только вы нажмете ее, запустится пакет автоматизации, и будут выполнены тестовые сценарии. После завершения выполнения мы можем увидеть статус выполнения задания, и если оно завершится неудачно, то вывод консоли можно использовать для получения журналов ошибок для дальнейших исправлений.

Описание изображения

Преимущества
Ниже приведены некоторые из наиболее важных преимуществ тестирования приложений с автоматизацией и конвейерами современной непрерывной интеграции.

Более быстрый цикл выпуска:
Ускорение цикла сборки и тестирования позволит команде быстрее внедрять новые функции в производство, а также поможет экспоненциально сократить время выполнения теста за счет запуска из конвейера. Pipeline помогает организации ускорить выпуск релизов с максимальным качеством.
Поддерживает высокое качество:

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

Вывод
В настоящее время в мире Agile QA отвечает не только за тестирование, но и за то, чтобы тестирование проходило в том же темпе, что и сборка релиза. Автоматизация и конвейеры непрерывной интеграции — неотъемлемая часть современного тестирования, которое необходимо внедрять в каждый жизненный цикл выпуска программного обеспечения. Хотя создание наборов автоматизированных тестов займет некоторое время и деньги, но включение их в конвейер для запуска проверки при каждом развертывании вскоре окупается.