TestNG

  • добавить в pom.xml зависимость testNG

Аннотации

  • @BeforeSuite - выполняется перед всеми тестовыми классами, которые входят в текущий набор тестов, который определяется в разделе test в xml-файле
    • @BeforeTest - выполняется перед первым @Test методом в текущем наборе тестов, который определяется в разделе test в xml-файле
      • @BeforeClass - выполняется перед первым @Test методом в текущем классе
        • @BeforeMethod - выполняется перед каждым @Test методом
          • @Test - тестовый метод, основная логика теста
        • @AfterMethod - выполняется после каждого @Test метода
      • @AfterClass - выполняется после последнего @Test метода в текущем классе
    • @AfterTest - выполняется после последнего @Test метода в текущем наборе тестов, который определяется в разделе test в xml-файле
  • @AfterSuite - выполняется после всех тестовых классов, которые входят в текущий набор тестов, который определяется в разделе test в xml-файле
  • @BeforeGroups("groupName") - выполняется перед указанной группой тестов
  • @AfterGroups("groupName") - выполняется после указанной группы тестов
  • @Ignore - игнорировать / не выполнять метод, класс

Атрибуты

  • (groups={"Login","Module"}) - указывает группы к которым принадлежит метод
  • (priority=1) - приоритет выполнения в порядке возрастания, по умолчанию = 0
  • (description="someText") - описание метода, #задачи
  • (dependOnMethods={"loginTest","homePageTest"}) - будет выполнен после удачного выполнения указанных методов, иначе не будет запускаться
  • (dependOnGroups={"login","homePage"}) - будет выполнен после удачного выполнения всех методов из указанных групп, иначе не будет запускаться
  • (alwaysRun=true) - выполнять всегда, даже если зависит от метода, который провалился
  • (enabled=false) - игнорировать / не выполнять метод

через Атрибуты

  • (expectedExceptions={ArithmeticException.class}) - определяет список исключений, которые ожидаются в результате работы метода. Если исключение, указанное в атрибуте, выброшено тестовым методом, то тест прошёл успешно. В противном случае, отсутствие исключения или выброс другого исключения, не указанного в атрибуте, провалит тест.
  • (timeOut=500) - задает граничное время прохождения метода
  • (invocationCount=5) - задает цикл: сколько раз должен повториться метод
  • (invocationCount=5, invocationTimeOut=5000) - задает граничное время прохождения метода для всех вызовов, используется вместе.

через Ассерты

  • Assert.assertEquals(String actual, String excepted, String message)
  • Assert.assertEquals(String actual, String excepted)
  • Assert.assertEquals(boolean actual, boolean excepted)
  • Assert.assertEquals(java.util.Collection actual, java.util.Collection excepted)
  • Assert.assertTrue(condition)
  • Assert.assertFalse(condition)

  • @DataProvider (пример) - тестовые значения
  • @Parameters (пример) - переменные окружения

Maven

  • создать файл runAll.xml
  • файл положить в test/resources/runner/
  • в pom.xml создать:
    • proprties <run>runAll</run>
    • build configuration
  • запуск в терминале = mvn clean test -Drun=название_файла_xml

some text