TestNG, Level 1
1. Подготовка к использованию
-
интеграция со средами разработки
-
интергация со сборщиками Maven, And, Gradle
2. Формирование тестового набора, основные аннотации @Test, @BeforeX, @AfterX
3. Assert и Assertion
4. Конфигурационный файл
5. Зависимости между тестами, порядок выполнения
6. Группы тестов
7. Параметризация тестов
-
через конфигурационный файл
-
через @DataProvider
8. Параллельное выполнение тестов
TestNG, Level 2
1. Фабрики тестов @TestFactory
-
параметризация провайдеров данных
-
конфигурационное тестирование
-
построение сложных сценариев из простых блоков
2. Использование Listeners
-
IMethodInterceptor (пример: упорядочивание тестов)
-
IHookable (пример: немедленное повторение “упавших” тестов)
-
IAnnotationTransformer2 (пример: игнорирование тестов, помеченных специальной аннотацией)
3. Инъекция информации о тестах и результатах в @BeforeX, @AfterX, @Test и @DataProvider
-
протоколирование выполнения тестов
-
дополнительные аннотации, управляющие окружением (пример: перезапуск браузера перед определёнными тестами)
-
универсальные провайдеры данных (пример: загрузка тестовых данных из файлов)
-
автоматическое снятие скриншотов, видеозапись хода выполнения тестов
JUnit, Level 1
1. Подготовка к использованию
-
интеграция со средами разработки
-
интергация со сборщиками Maven, And, Gradle
2. Формирование тестового набора, основные аннотации @Test, @Suite, @BeforeX, @AfterX
3. Assert и Assume
4. Стандартные “расширенные” запускатели тестов
-
группировка тестов в категории (Categories)
-
параметризация тестов (Parametrized)
5. @Rule, замена @BeforeX и @AfterX правилами
JUnit, Level 2
1. Более сложные правила
-
параметризация тестов, в том числе загрузка данных из файлов
-
немедленное повторение “упавших” тестов
-
автоматическое снятие скриншотов, видеозапись хода выполнения тестов
-
дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией, перезапуск браузера перед определёнными тестами)
2. @RunsWith -- самодельные запускатели тестов
-
конфигурационное тестирование
-
порядок выполнения тестов
-
дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией, перезапуск браузера перед определёнными тестами)
3. @Theories -- почти тестирование на основе моделей
Фреймворки семейства xUnit -- это основа основ автоматизированного тестирования. Они используются для организации и запуска тестов и сбора информации о результатах тестирования, то есть решают одну из ключевых задач автоматизации тестирования.
Увы, часто тестировщики-автоматизаторы строят сложные конструкции из “костылей” и изобретают самодельные велосипеды, не подозревая о том, что нужная функциональность может быть реализована гораздо более простым способом.
Из тренинга вы узнаете, как организовывать тесты в группы, как их запускать в нужном порядке, как правильно описывать зависимости между тестами, как реализовать “мягкие” и “жесткие” проверки, как сделать тесты параметризованными, как реализовать загрузку данных из разных источников и применять подход DDT (data-driven testing), как автоматически перезапустить упавшие тесты и ещё многое другое.