Через две недели мы запускаем новый онлайн-тренинг Эффективное использование TestNG и JUnit, посвящённый тестовым фреймворкам JUnit и TestNG, и чтобы дать представление о его содержимом мы решили опубликовать некоторые фрагменты этого тренинга.
Эффективное использование JUnit и TestNG: о чём этот тренинг?
Интеграция JUnit и TestNG со сборщиками Maven, Ant и Gradle
Для сборки и запуска автотестов как правило используются специальные программы-сборщики, такие как Maven, Ant или Gradle. В этом фрагменте рассказывается о том, как настроить сборщики для запуска тестов.
Интерация JUnit и TestNG со средами разработки IDEA, Eclipse и NetBeans
Прежде чем запускать тесты, их нужно разработать, и для этого естественно использовать интегрированные среды разработки, такие как IntelliJ IDEA, Eclipse или NetBeans. В этом фрагменте рассказывается о том, как подключить тестовые фреймворки к средам разработки, чтобы можно было в них разрабатывать тесты.
Информация о других тренингах по тестированию ПО
Подробную программу тренинга вы можете посмотреть по ссылке или ниже:
Автор и ведущий тренинга –- Алексей Баранцев:
Фреймворки семейства xUnit -- это основа основ автоматизированного тестирования. Они используются для организации и запуска тестов и сбора информации о результатах тестирования, то есть решают одну из ключевых задач автоматизации тестирования.
Однако наши многочисленные тренинги по автоматизации уделяют недостаточно внимания этому важнейшему аспекту разработки автотестов, поэтому мы решили добавить в линейку тренинг, специально посвященный эффективному использованию тестовых фреймворков.
В этом тренинге рассматриваются два наиболее популярных тестовых фреймворка для языка программирования Java -- JUnit и TestNG.
Начать работать с этими фреймворками несложно. Однако опыт показывает, что большинство автоматизаторов использует лишь незначительную часть возможностей, которые предоставляют тестовые фреймворки.
Но может быть эти “продвинутые” возможности просто не нужны, поэтому и не используются?
Увы, часто тестировщики-автоматизаторы строят сложные конструкции из “костылей” и изобретают самодельные велосипеды, не подозревая о том, что нужная функциональность может быть реализована гораздо более простым способом.
Из тренинга вы узнаете, как организовывать тесты в группы, как их запускать в нужном порядке, как правильно описывать зависимости между тестами, как реализовать “мягкие” и “жесткие” проверки, как сделать тесты параметризованными, как реализовать загрузку данных из разных источников и применять подход DDT (data-driven testing), как автоматически перезапустить упавшие тесты и ещё многое другое.
Материал разбит на два уровня сложности: использование встроенных возможностей тестового фреймворка и расширение функциональности фреймворка через специально предусмотренные интерфейсы расширения.
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 -- почти тестирование на основе моделей
Зарегистрироваться на курс
|