Вводный урок "Intro to QA.GURU Java Advanced" с Дмитрием Тучс
- Мы будем тестировать полностью самописное приложение в суперсовременном стеке (Java 17, Spring Boot 3, Spring Security 6, Spring Data, OAuth2, gRPC, GraphQL, Microservices, Docker, Postgres, React). Да, все это будет полностью самописное и обо всем этом мы будем говорить на курсе.
- Вы будете не просто понимать, как написать автотест на GraphQL, а разберетесь, как это вообще работает под капотом.
- Узнаете, как сделать запрос в БД из теста и зачем это вообще может быть нужно в микросервисной архитектуре.
- Мы будем подменять настоящие микросервисы Wiremock-ом, а не абстрактно рассуждать, что это такое.
Дата и время начала обучения:
четверг 18 апреля 20:00 по МСК
3. Работаем с реляционными базами данных из тестов. JDBC с Дмитрием Тучс
- JDBC краткая теория
- Пишем код на JDBC
- Транзакции в JDBC
6. Нативное тестирование iOS – Swift + XCTest. Часть II с Владиславом Зингером
- Менеджеры зависимостей – SPM, cocoapods и carthage.
- Паттерны автотестов – Page Factory и Page Object.
- Мокирование сети в тестах.
- Интеграция с Allure.
- Интеграция с Сi / CD.
- Fastlane.
- Интеграция со Slack.
- Github Action + iOS.
- Сторонние нативные фреймворки iOS-автоматизации.
- Q&A + полезные ссылки.
7. Нативное тестирование iOS. XCTest. Часть III с Владиславом Зингером
- Ассерты и ожидания.
- Взаимодействие с системными диалогами.
- XCTContext – делаем тест-отчет информативным.
- Выгрузка отчетов в TestOps после прогона в Xcode.
- Кастомные аннотации для отчета.
2. Расширение функциональности JUnit5. Пишем свои конвертеры, резолверы и управляем запуском теста с Дмитрием Тучс
1. Знакомство с проектом и введение в JUnit Extensions. Дмитрий Тучс
- Обзор проекта niffler
- Необходимые предусловия для работы с проектом
- Запуск локально: настройка в idea ultimate, community
- Необходимые предусловия для запуска проекта в docker, отличия для windows и nix
- Запуск проекта в докере
- Введение в JUnit Extensions: интерфейсы BeforeEachCallback, ParameterResolver
- Разбор теста, написанного на вводном занятии, с разнесеним extensions по разным классам
- Жизненный цикл теста с учетом Callback и ExceptionHandler экстеншенов
- Экстеншн для работы с WebDriver
- Метааннотации и Reflection API
- Многопоточная очередь пользователей - UsersQueueExtension
4. Работаем с реляционными базами данных из тестов. Hibernate с Дмитрием Тучс
- Hibernate и JPA – краткая теория.
- JPA в Spring boot (Spring data JPA).
- Пишем Thread safe EntityManagerFactory.
- Работаем с БД из тестов через Hibernate.
5. Нативное тестирование iOS – Swift + xctest. Часть I с Владиславом Зингером
- Сравнение XCUITest c другими фреймворками – плюсы и минусы.
- Среда разработки Xcode.
- Полезные вспомогательные приложения.
- Подпись приложений и модели распространения iOS-приложений.
- Схема и таргет.
- Основы программирования на Swift.
- Swift Playground.
- Переменные.
- Базовые операторы.
- Методы.
- Классы и структуры.
- Фреймворки XCTest и XCUITest.
- Локаторы и типы локаторов.
- Как искать локаторы.
- Взаимодействие с локаторами.
- Тест-отчеты – XCResult.
- Q&A + полезные ссылки.
8. Автоматизация на проекте "с нуля" – строим минимальный фреймворк с Дмитрием Тучс
- Для чего стоит и не стоит писать свой фреймворк.
- Решаемые задачи.
- Как не писать фреймворк.
- Если пишете – о чем думать.
9. Параллелизация тестов в JUnit5. Как не выстрелить себе в ногу с Дмитрием Тучс
- Краткая теория конкаренси.
- Пишем безопасный код тестов в многопоточной среде.
- Особенности работы с JUnit Extensions при многопоточным выполнении тестов
10. Кастомизация фреймворков – расширяем Allure, Selenide с Дмитрием Тучс
- Кастомные шаблоны
2. Allure lifecycle
11. Реализуем Oauth авторизацию с помощью кастомизации Retrofit с Дмитрием Тучс
- Краткая теория Oauth-авторизации.
- Пишем свои HTTP Interceptors.
- Реализуем авторизацию через JUnit Extensions.
12. Создаем WEB-сервис на Java с Дмитрием Тучс
- Spring (context, DI, сервисы).
- Spring Web (REST сервис).
- Spring Data JPA (работа с базой).
13. Unit-тесты – пишем тестируемый код и тесты для него с Дмитрием Тучс
- Краткая теория Unit-тестирования.
- Покрываем тестами код сервисов Niffler.
14. Тестируем сервисы gRPC с помощью нативных библиотек с Дмитрием Тучс
- Теория и применимость.
- gRPC в Spring Boot.
- Тесты на gRPC.
- Интеграция с Allure.
15. Установочное занятие по диплому с Дмитрием Тучс
Презентация дипломного проекта и постановка задач.
16. Тестирование микросервисов в Docker Compose с Дмитрием Тучс
- Поднимаем микросервисы через Docker Compose.
- Тестирование микросервисов: теория и практика.
- Selenoid & Selenoid UI.
17. Wiremock в тестах с Дмитрием Тучс
- Используем in-memory Wiremock прямо в тестах.
- Используем HTTP и gRPC Wiremock в Docker Compose.
18. Расширяем тестовое покрытие. Применяем JUnit Extensions для построения полноценного фреймворка с Дмитрием Тучс
Пишем WEB- и API- тесты с созданием всех тестовых данных через JUnit Extensions.
19. Тестируем сервисы GraphQL с помощью Retrofit с Дмитрием Тучс
- Теория и применимость.
- GraphQL в Spring Boot.
- Тестирование graphQL – Retrofit.
20. Тестируем сервисы SOAP с помощью Retrofit с Дмитрием Тучс
- Правильно организуем хранение свойств (properties) в проекте с библиотекой Owner.
- Прячем секретные данные в Jenkins.
21. Apache Kafka – тестируем асинхронные микросервисы. Дмитрий Тучс
- Apache Kafka. Теория и применимость.
- Kafka в проекте на Spring Boot.
- Пишем свой Consumer и JUnit Extension для его использования в тестах.
22. Нативное тестирование Android. Kaspresso с Артемом Ерошенко. Занятие в записи
23. Конференции – готовим доклад и себя к выступлению. Дмитрий Тучс
- Как попасть на конференцию спикером.
- Как готовиться.
- Презентация – хорошая и плохая.
- Дискуссия до и после доклада.
- Ради чего? Плюсы и минусы.
24. CI / CD – pipeline, к которому мы шли, с Дмитрием Тучс
Рассматриваем вопросы сборки проекта и деплоя на прод с использованием GHA.
Q&A по дипломному проекту с Дмитрий Тучс
Отвечаем на вопросы, возникшие при работе над дипломным проектом.