TestNG - фреймворк для автоматизации тестирования

TestNG - фреймворк для автоматизации тестирования

TestNG - фреймворк для автоматизации тестирования на Java. Предоставляет функционал различных аннотаций для управления тестами, настройками, зависимостями и параметризацией.

Установка TestNG текущей версии выпуска:

Maven

<dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>7.9.0</version><scope>test</scope></dependency>

Gradle

dependencies {

testCompile 'org.testng:testng:7.9.0'}

Сборка TestNG из исходного кода

Исходный код TestNG на GitHub и сборка:

$ git clone git://github.com/testng-team/testng.git

$ cd testng

$ ./gradlew build

Аннотации в TestNG начинаются с символа `@`.

Основные аннотации TestNG:

@BeforeSuite - метод будет выполнен до того, как будут запущены все тесты из этого набора;

@AfterSuite - метод будет запущен после выполнения всех тестов из этого набора;

@BeforeTest- метод будет выполнен перед любым тестовым методом, принадлежащим классам, находящимся внутри тега «test»;

@AfterTest - метод будет выполнен после того, как будут выполнены все тестовые методы, принадлежащие классам внутри тега «test»;

@BeforeGroups - список групп, перед которыми будет запущен данный метод конфигурации;

@AfterGroups - список групп, после которых будет выполняться этот метод конфигурации;

@BeforeClass - метод будет выполнен до вызова первого тестового метода в текущем классе;

@AfterClass - метод будет выполнен после того, как будут выполнены все тестовые методы в текущем классе;

@BeforeMethod - метод будет запущен перед каждым тестовым методом;

@AfterMethod - метод будет запущен после каждого тестового метода.

Порядок выполнения аннотаций:

@BeforeSuite

@BeforeTest

@BeforeClass

@BeforeMethod

@Test (Тестовый метод 1)

@AfterMethod

@BeforeMethod

@Test (Тестовый метод 2)

@AfterMethod

@AfterClass

@AfterTest

@AfterSuite

Атрибуты аннотации `@Test`:

dependsOnMethods и dependsOnGroups - определяют зависимости между тестами. Зависимые методы выполнятся только после успешного выполнения указанных методов или групп;

enabled = false - временно отключает тест без удаления кода;

groups - позволяет объединять тесты в логические группы;

priority - задаёт приоритет выполнения;

dataProvider - связывает тест с методом, помеченным @DataProvider, для параметризованного запуска с разными данными;

timeOut - устанавливает лимит времени в миллисекундах на выполнение теста.

Заключение:

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

Начать дискуссию