Эффективное использование TestNG и JUnit
Фреймворки семейства xUnit -- это основа основ автоматизированного тестирования.
Фреймворки семейства xUnit используются для организации и запуска тестов и сбора информации о результатах тестирования, то есть решают одну из ключевых задач автоматизации тестирования.
В этом тренинге рассматриваются два наиболее популярных тестовых фреймворка для языка программирования Java -- JUnit и TestNG.
Начать работать с этими фреймворками несложно. Однако опыт показывает, что большинство автоматизаторов использует лишь незначительную часть возможностей, которые предоставляют тестовые фреймворки.
Но может быть эти “продвинутые” возможности просто не нужны, поэтому и не используются?
Увы, часто тестировщики-автоматизаторы строят сложные конструкции из “костылей” и изобретают самодельные велосипеды, не подозревая о том, что нужная функциональность может быть реализована гораздо более простым способом.
Из тренинга вы узнаете, как организовывать тесты в группы, как их запускать в нужном порядке, как правильно описывать зависимости между тестами, как реализовать “мягкие” и “жесткие” проверки, как сделать тесты параметризованными, как реализовать загрузку данных из разных источников и применять подход DDT (data-driven testing), как автоматически перезапустить упавшие тесты и ещё многое другое.
Материал разбит на два уровня сложности: использование встроенных возможностей тестового фреймворка и расширение функциональности фреймворка через специально предусмотренные интерфейсы расширения.
Формат курса
Онлайн-тренинг продолжительностью 4 занятия по 1,5 часа с еженедельными онлайн-консультациями и практическими домашними заданиями.
Обучение происходит следующим образом:
В специальном закрытом разделе выкладывается запись очередного урока курса, ссылки на дополнительные материалы, домашняя работа.
Теоретическую информацию можно посмотреть в любое удобное время.
Помимо теоретической части, вас также ждут практические домашние задания, которые тщательно проверяются тренером. После проверки практических заданий Вы получаете оценку и подробный комментарий по своей работе и при необходимости советы по доработке. По результатам комментариев тренера Вы можете переделать домашнюю работу и улучшить свою оценку.
Общение участников курса и тренеров проходит в скайп-чате учебной группы, где можно задавать вопросы тренеру и при желании общаться с другими участниками учебной группы. Каждый день тренер будет доступен в скайп-чате и каждый день будет отвечать на вопросы, Вы можете задавать вопросы по теоретическому материалу или домашней работе, как только они у вас возникают.
Все выпускники, успешно сдавшие домашние задания, получают сертификат.
TestNG, Level 1
1. Подготовка к использованию
- интеграция со средами разработки
- интеграция со сборщиками Maven, Ant, 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, Ant, Gradle
2. Формирование тестового набора, основные аннотации @Test, @Suite, @BeforeX, @AfterX
3. Assert и Assume
4. Стандартные “расширенные” запускатели тестов
- группировка тестов в категории (Categories)
- параметризация тестов (Parametrized)
- 5. @Rule, замена @BeforeX и @AfterX правилами JUnit, Level 2
1. Более сложные правила
- параметризация тестов, в том числе загрузка данных из файлов
- немедленное повторение “упавших” тестов
- автоматическое снятие скриншотов, видеозапись хода выполнения тестов
- дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией,
- перезапуск браузера перед определёнными тестами)
2. @RunsWith -- самодельные запускатели тестов
- конфигурационное тестирование
- порядок выполнения тестов
- дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией,
- перезапуск браузера перед определёнными тестами)
3. @Theories -- почти тестирование на основе моделей