Сегодня обсудим одну полезную фичу фреймворка TestNG. Она называется groups или группы тестирования. С помощью групп тестирования в TestNG тесты можно объединить в группы. Это позволяет тестировщику выбирать, какие из них в какой момент запускать, а какие игнорировать. Кроме того, есть возможность объединять несколько тестовых групп в одну, а также использовать регулярные выражения и многое другое.
Что такое тестовые группы в TestNG?
Группы в TestNG существуют для объединения различных тестов. Они объединяются в одну тестовую группу для выполнения этих тестов вместе. Для этого достаточно будет просто запустить одну простую команде. Тесты могут находится внутри одного класса или принадлежать к разным классам.
- В рамках одного тестового проекта у вас могут быть UI тесты, проверяющие пользовательский интерфейс. Ещё могут быть API проверяющие взаимодействие с backend частью, минуя интерфейс пользователя. Для удобства запуска их можно отнести к различным тестовым группам.
- Ещё тесты могут относится к различной функциональности. В этом случае можно указывать отдельные группы для каждой функциональности.
- Внутри каждой из предыдущих групп могут быть smoke, acceptance и regression тесты. Для них тоже удобно иметь отдельные группы.
TestNG также позволяет нам группировать тесты внутри групп. Такая группировка избавляет нас от необходимости определять большое количество классов в исходном коде тестов и затем запускать эти классы по отдельности, что позволяет экономить время.
TestNG для тестировщика автоматизатора.
Курс знакомит тестировщиков ПО с часто встречающимися задачами при тестировании backend приложений. На примере простого микро сервиса вы увидите что собой представляет REST API. Какие основные подходы для тестирования ПО используются при его проверках. С помощью каких инструментов и библиотек пишутся автотесты и создаются тестовые фреймворки.
Разметка групп производится внутри аннотации @Test. Для этого используется параметр groups. Группировка тестов реализуется в файле testng.xml. Группы можно указать внутри тэгов или . Помните, что тестовые группы, определенные в теге , применяются только к этому конкретному тесту. Группы тестов, определенные в теге , применяются ко всем тестам в XML-файле. Например, в данном случае, мы определили группу Smoke внутри тега "suite", как в следующем примере:
Поскольку "groups" находится внутри тега suite, он запустит все тесты в XML-файле. Для второго случая смотрите следующую настройку, как в приведенном далее коде:
Теперь группы будут работать только внутри тега test с именем Groups test.
Как создавать группы?
Давайте создадим несколько тестовых методов, чтобы на примере посмотреть как работать с тестовыми группами в TestNG. Добавим первый тестовый класс:
Созданный класс содержит три тестовых метода. Каждый из них содержит аннотацию @Test из TestNG. Тестовые группы указаны в парметре groups. Для первого тестового метода это группы Smoke, Acceptance и Regression. Для второго метода указаны тестовые группы Acceptance и Regression. Для третьего указана одна группа тестов TestNG с именем Regression. Создадим еще один тестовый класс. Он будет содержать такие же автотесты и будет отличаться только названием:
Запуск группы автотестов в TestNG
Запуск группы тестов в TestNG можно сделать несколькими способами. Можно сделать это через IDE. Например в Intellij Idea для этого нужно создать соответствующую TestNG конфигурацию запуска:
В ней нужно указать, что запускать нужно группу. Для этого в выпадающем списке Test kind выбираем Group. В параметре Group указываем название группы, в нашем случае это группа Smoke. После запуска с такой конфигурацией у нас запустятся два теста:
Второй вариант запуска - через файл testng.xml. Укажем в нём наши созданные классы и тестовую группу Smoke:
После запуска мы получим следующий результат: