Автоматизация тестирования Java [QA.guru]
Программа
Программа
- Дата и время начала Чт 13 Май 20:00
- Вводное занятие. Сразу в бой!
- Практика. Пишем первый автотест: Java / Gradle / JUnit5 / Selenide.
- Изучаем готовый проект с инфраструктурой: Github / Jenkins / Allure Report / Allure Enterprise Edition / Selenoid / Телеграм-бот
- Профессионально работаем с IntelliJ IDEA Юрий Артамонов (JetBrains)
- Основы
- Git and Github
- Docker
- Базы данных
- HTTP Client
- Selenium
- BDD Support
- JUnit 5. Дмитрий Тучс
Дополнительный блок из 3х занятий, темы:- Жизненный цикл объекта в JUnit (instance per test)
- BeforeEach / All / After - какие статические, какие нестатические и в чем принципиальная разница
- Метааннотации
- Параметризованные тесты
- Sources (дата-провайдеры)
- Нэйминг
- Работа под капотом
- 2. Погружаемся в инструментарий и библиотеки
1. Разбор домашнего занятия к вводному занятию - настройка рабочей среды для запуска первого автотеста. Установка Java, Git, Gradle, IntelliJ IDEA (как вводить ключ)
Запуск автотеста локально. Разбираемся, если что-то не работает (небольшая сессия вопросов и ответов).)- Git - самые основы
- Теория: Gradle, JUnit5, Selenide.
- Практика. Работаем с тренажером demoqa.com
- 3. Selenide #1. Алексей Виноградов
- Лайвкодинг - тесты для GitHub
- DOM для начинающих
- Основные функции библиотеки Selenide (справочник-шпаргалка)
- 4. Продолжаем разрабатывать автотесты. Больше возможностей
- Selenide IDE - и такое бывает. Рекордер в помощь для сложных случаев
- Добавляем в код PageObjects
- Генерация рандомных значений для тестов - RandomUtils / JavaFaker
- executeJavascript() - вызов javascript-кода из Selenide, делаем параметризированные тесты
- ElementsCollection - работаем с коллекцией элементов
- Дополнительное занятие. CV, резюме. Евгений Данилов
Отличная возможность привести в порядок ваше CV - 5. Allure Reports. Артём Ерошенко
- Практика. Подключение Allure Reports и настройка отчетности о прохождении автотестов.
- Практика. Построение более информативной отчетности c вложениями:
3. Теория. Обзор возможностей Allure Reports. - 6. Работаем с файлами
- Как скачать и прочитать файл
- Проверяем контент в .txt, .pdf, .xls/.xlsx, .doc/.docx, .zip
- Визуальные проверки (занятие в разработке)
- Ashot - сравнение скриншотов
- Regression-Tracker
- Galen framework - проверка верстки
- 7. Git. Github. Погружаемся
- Еще раз повторим основы Git & Github.
- Основы ветвления, pull requests.
- Работа в парах: правим друг у друга код
- Алексей Кузнецов. Основы Java.
- Примитивные и ссылочные типы, переменные, константы
- Объекты
- Списки и массивы
- Классы: Конструкторы, поля, методы
- 8. Jenkins. Создаем первую задачу
- Практика. Создаем задачу (Job), связываем с репозиторием в Github, запускаем тесты удаленно.
- Теория. Основы Jenkins.
- Теория. Основы CI/CD.
- Работа в парах: создаем друг другу джобы и запускаем чужой код
- 9. Управляем параметрами в коде и в Jenkins.
- Передаем параметры в код из командной строки
- Прячем приватные данные с библиотекой owner
- Передаем параметры из jenkins
- 10. Телеграм-бот. Отправляем уведомления о результатах прохождении автотестов
- Практика. Пишем телеграмм-бота.
- Практика. Постобработка сборки. Настраиваем отправку уведомлений в Jenkins.
- Теория. Обзор возможностей Telegram API.
- SQL. Станислав Васенков.
1. Проверяем результаты выполнения тестов в базе данных 2. Подкладываем тестовые данные в базу данных 3. Testcontainers 4. Основные базовые команды SQL (select, update и т.п.) 5. Сложные команды SQL (join и т.п.) - 11. Учимся быстро разрабатывать готовые проекты для тестовых заданий
Набиваем руку небольшими проектами.- Находим интересную нам вакансию (hh.ru / linkedin / @qa_jobs)
- Делаем небольшой проект:
- разрабатываем 5-10 простых автотестов на сайт из вакансии,
- создаем задачу в jenkins,
- прячем секретные данные с owner (более развернуто будет в следующем занятии)
- настраиваем Allure-отчет, добавляем вложения:
-- логи браузера,
-- видеозапись теста,
- настраиваем нотификация в telegram / slack.
По мере прохождения курса добавим сюда:- автотесты на API
- тест-план Allure TestOps - с ручными и автоматизированными тестами
- интеграцию с Jira
- Autotests.cloud. Станислав Васенков.
Автоматизируем автоматизацию тестирования- Используем сервис как генератор проектов
- Используем сервис как фриланс-биржу, зарабатываем!
- 12. Selenoid. Роман Орлов
- Практика. Добавляем контейнеризацию к задаче в Jenkins.
- Теория. Основы Docker. Selenoid
- 13. Библиотека Owner. Артём Ерошенко
1. Правильно организуем хранение свойств (properties) в проекте с библиотекой Owner
2.Прячем секретные данные в Jenkins - 14. Selenide #2. Алексей Виноградов
1. Практика:
— Написание автотестов на Selenide.
— Тестирование виджетов.
2. Теория:
— Закрепление знаний полученных на практике
—Java
—JUnit5
—тонкости css/xpath и работы с DOM-деревом
- Работаем с email-сервером. Станислав Васенков.
1. Отправляем, получаем и ищем письма 2. Regexp, регулярные выражение - достаем ссылку из письма - 15. REST API. Пишем автотесты с Rest-assured
- Практика. Пишем тесты на REST API при помощи библиотеки Rest-assured
- Теория. Основы HTTP-протокола, типы запросов, коды ответов.
- 16. REST API. Продолжаем изучать
1. Практика. Декомпозируем UI-автотест в несколько API-автотестов.
Больше возможностей REST-assured
2. Изучаем вспомогательные инструменты:- Postman,
- Charles/Fiddler,
- chrome dev tools (вкладка Network)
- Теория. Больше про REST API.
- Теория. Обзор SOAP API
- 17. REST API/ Groovy
- Groovy для ассертов и основы языка
- Немного магии java
- Спецификации
- Шаблоны для Allure
- 18. REST/SOAP API. Закрепляющее занятие
- Практика. Практика. Практика.
- Обзор аналогов REST-assured:
- Retrofit2
- Unirest
- 19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
- Практика. Учимся пользоваться инспектором в Browserstack, разрабатываем первые автотесты на iOS / Android с Selenide
- Практика. Browserstack-API. Забираем логи, видео.
- Теория. Основы тестирования мобильных приложений.
- 20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android-устройства и на своем телефоне
1. Настраиваем рабочее место:- Appium
- Android Studio
- Настраиваем переменные среды
- Эмулируем Android устройство
- Подключаем свой телефон
- Практика. Разрабатываем автотесты с Appium.
- Теория. Основы Appium.
- 21. Allure TestOps #1. Артем Ерошенко
- Знакомство с системой.
- Заведение тест-кейсов.
- Создание первого тест-плана.
- 22. Allure TestOps. Дополнительное занятие. Станислав Васенков.
Подключаем свои тесты к Allure EE - 23. Manual QA. Ручное тестирование. Евгений Данилов.
- Теория тестирования.
- Тест-дизайн и осознание собственных ошибок.
- Разработка ручных тест-кейсов для последующей автоматизации.
- Работа в Jira-workflow, правила оформления багов.
- 24. Allure TestOps #2. Артем Ерошенко
- Интеграции с Jenkins и Jira
- Объединение ручных тестов и автотестов в единый тест-план
- Метрики, графики, углубленное изучение платформы
- Администрирование
- Обзор решений и внедренных проектов
- 25. Дипломный проект
Набиваем руку небольшими проектами.- Находим интересную нам вакансию (hh.ru / linkedin / @qa_jobs)
- Делаем небольшой проект - разрабатываем 5-10 простых автотестов на сайт из вакансии, добавляем джобу в дженкинсе с аллюр-отчетом
3. Отправляем наш проект hr c сопроводительным письмом - 26. Переезд на собственную инфраструктуру с ресурсов школы. Егор Иванов (выпускник первого потока)
Настроим тестовый стенд локально. Точно также стенд настраивается на любом VPS, например в DigitalOcean.com- Рассмотрим базовые команды Linux, которые понадобятся
- Доступ к удаленному серверу через ssh Ubuntu,
3. На виртуальной машине установим:
3.1 Java
3.2 Docker
3.3 Docker-compose- Создаем конфиг для docker-compoe
- Поднимаем Selenoid + Selenoid UI
6. Поднимаем Jenkins
6.1 Первичные настройки Jenkins.
6.2 Проверка работоспособности.
Задание не обязательное. Доступ к инфраструктуре школы останется после окончания обучения (в разумных пределах, конечно). - Проверка и разбор домашних заданий
Live-разбор домашних занятий, обычно, проходит в вечернее время в дни, когда нет основных занятий (и когда есть время у преподавателя)
https://qa.guru/
goto/post?id=8441020#post-8441020