TestNG аннотации, группировка и создание зависимых тестов

TestNG аннотации, группировка и создание зависимых тестов

Аннотации TestNG

В первой статье мы уже рассмотрели некоторые аннотации в TestNG фреймворке: мы использовали только три (Before, After и Test). Они являются наиболее используемыми, но следует рассмотреть остальные.

Прежде всего давайте рассмотрим иерархию или уровни аннотаций в TestNG.

Можно увидить, что @Test имеет самый нижний уровень . Метод с аннотацией @Method будет выполнен первым, перед и после выполнения @Test. Таким же образом метод с аннотацией @Class будет выполнен первым, до и после выполнения метода с @Method.

Пример ниже прояснит сказанное выше:

Ниже показан результат выполнения:

annotations-1

Метод с аннотацией @BeforeSuite/@AfterSuite выполняются в самом начале и конце. Потом методы с @BeforeTest и @AfterTest, @BeforeClass и @AfterClass. Можно заметить, что @BeforeMethod и @AfterMethod выполняются дважды: перед и после каждого метода с аннотацией @Test.

Группировка тест-кейсов

“Groups” – это еще один вид аннотаций TestNG, который позволяет обьединять тест-кейсы в группы или сьюты (test suites).

Как это сделать…

1) Давайте создадим по два метода Car, Scooter и обьединение Car и Sedan Car.

2) Сгруппируйте их отдельно, используя аннотацию  (groups = { “Название группы” })

3) Создайте TestNG xml вида:

4) Запустите testng.xml файл: Run As > TestNG Suite. Результат выполнения можно увидить в консоли:

annotations-2

 

Обратите внимание, что мы вызвали только группу “Car” в xml и он тоже выполнил тесты для Sedan Car, так как мы упомянули “Car” с группой “Sedan Car”: @Test (groups = { “Car”, “Sedan Car” }

Группировка групп также возможна:

Можно увидить, что мы создали группу “All” и включили в нее другие группы:

annotations-3

 

Зависимости тестов

Часто приходится вызывать методы в определенном порядке или вносить определенные изменения между запусками тестов. Это делается с помощью явных зависимостей между тестовыми методами.

TestNG позволяет создавать зависимости с помощью:

  • Использования атрибута dependsOnMethods в аннотации @Test
  • Использования dependsOnGroups в @Test аннотации.

Просмотрите следующий пример:

Результат будет следующим:

annotations-4

RelatedPost