Программа:
Вводное занятие. Сразу к практике!
1. Практика. Пишем первый автотест: Java / Gradle / JUnit5 / Selenide
2. Изучаем готовый проект с инфраструктурой: Github / Jenkins / Allure Report / Allure TestOps / Selenoid / Телеграм-бот
Дополнительное занятие. Профессионально работаем с IntelliJ IDEA Юрий Артамонов (JetBrains)
1. Основы
2. Git and Github
3. Docker
4. Базы данных
5. HTTP Client
6. Selenium
7. BDD Support
Дата и время начала Пн 19 Дек 20:00
Git. Github. Погружаемся. Дмитрий Тучс
1. Еще раз повторим основы Git & Github
2. Основы ветвления, pull requests
Дата и время начала Чт 22 Дек 20:00
Погружаемся в инструментарий и библиотеки. Станислав Васенков и Дмитрий Тучс.
1. Теория: Gradle, JUnit5, Selenide
2. Практика. Работаем с тренажером demoqa.com
3. Рассмотрим подробнее возможности Selenide и CSS/Xpath-селекторы
Дополнительное занятие. Selenide IDE - и такое бывает
Не путать с Selenium IDE, но его тоже рассмотрим
(Занятие в помощь начинающему автоматизатору, как достучаться до первых сложных элементов)
1. Установим Selenium IDE, сделаем экспорт в java-код
2. Установим Selenide IDE
3. Сравним оба варианта
Дата и время начала Пн 26 Дек 20:00
Продолжаем разрабатывать автотесты. PageObjects. Станислав Васенков.
1. Добавляем в код PageObjects
2. Изучаем подходы - степовой, сценарный, dsl
3. Добавляем PageComponents
Дата и время начала Чт 29 Дек 20:00
Основы Java. Дмитрий Тучс
1. Src - main
2. Класс с точки зрения файлов
3. Класс с точки зрения Java
4. Class fields - переменные (в чем разница)
5. Примитивные типы данных
6. Литералы
7. Операторы
8. Управляющие конструкции
9. Метод, как описание поведения
10. Создание объектов и вызов методов
Дата и время начала Пн 09 Янв 2023
Продолжаем разрабатывать автотесты. Генерация тестовых данных. Станислав Васенков.
1. Генерим рандомные значения используя встроенные библиотеки
2. Используем JavaFaker
Дата и время начала Чт 12 Янв 2023
JUnit 5. Дмитрий Тучс
1. Аннотация @Test
2. Что из себя представляют аннотации в Java
3. Пишем свою простейшую реализацию JUnit5
4. @Disabled , @DisplayName
5. Тест кейс - что такое и из чего состоит
6. Параметризованные тесты:
- концепция
- sources (дата-провайдеры)
- нэйминг
Дата и время начала Пн 16 Янв 2023
Работаем с файлами. Дмитрий Тучс
1. Как скачать и прочитать файл
2. Проверяем контент в .txt, .pdf, .xls/.xlsx, .doc/.docx, .zip
Allure Reports. Артём Ерошенко
1. Практика. Подключение Allure Reports и настройка отчетности о прохождении автотестов
2. Практика. Построение более информативной отчетности c вложениями:
- прикладываем скриншоты, файлы, логи и другие вложения в отчет
3. Теория. Обзор возможностей Allure Reports
Дата и время начала Чт 19 Янв 2023
Selenide #1. Часть I. Алексей Виноградов
0. DOM для начинающих (запись)
1. Лайвкодинг - простые тесты для GitHub
2. Лайвкодинг - GitHub с решением некоторых типичных проблем
Дата и время начала Пн 23 Янв 2023
Дополнительное занятие. Selenide #1. Часть II. Алексей Виноградов
1. Основные функции библиотеки Selenide (справочник-шпаргалка)
2. Ответы на вопросы
**Внимание! Занятие содержит задание без проверки!
Дата и время начала Чт 26 Янв 2023
Jenkins. Создаем первую задачу. Станислав Васенков.
1. Практика. Создаем задачу (Job), связываем с репозиторием в Github, запускаем тесты удаленно.
2. Теория. Основы Jenkins.
3. Теория. Основы CI/CD.
Дата и время начала Пн 30 Янв 2023
Управляем параметрами в коде и в Jenkins. Станислав Васенков.
1. Передаем параметры в код из командной строки
2. Прячем приватные данные с библиотекой Owner
3. Передаем параметры из Jenkins
Дата и время начала Чт 02 Фев 2023
Телеграм-бот. Отправляем уведомления о результатах прохождении автотестов. Станислав Васенков.
1. Практика. Пишем телеграмм-бота
2. Практика. Постобработка сборки. Настраиваем отправку уведомлений в Jenkins
3. Теория. Обзор возможностей Telegram API
Дата и время начала Пн 06 Фев 2023
Учимся быстро разрабатывать готовые проекты для тестовых заданий. Станислав Васенков.
Набиваем руку небольшими проектами.
1. Находим интересную нам вакансию (hh.ru / linkedin / @qa_jobs)
2. Делаем небольшой проект:
- разрабатываем 5-10 простых автотестов на сайт из вакансии
- создаем задачу в Jenkins
- прячем секретные данные с owner
- настраиваем Allure-отчет, добавляем вложения:
-- снимки экрана
-- логи браузера
-- видеозапись теста
-- настраиваем уведомления в telegram / slack
По мере прохождения курса добавим сюда:
- автотесты на API
- тест-план Allure TestOps - с ручными и автоматизированными тестами
- интеграцию с Jira
3. Отправляем наш проект hr c сопроводительным письмом
Дата и время начала Чт 09 Фев 2023
Selenoid. Роман Орлов
1. Практика. Добавляем контейнеризацию к задаче в Jenkins
2. Теория. Основы Docker. Selenoid
Библиотека Owner. Артём Ерошенко
1. Правильно организуем хранение свойств (properties) в проекте с библиотекой Owner
2. Прячем секретные данные в Jenkins
Дата и время начала Пн 13 Фев 2023
Selenide #2. Алексей Виноградов
1. Практика:
- пишем автотесты на Selenide
- тестируем виджеты
2. Теория:
- закрепление знаний, полученных на практике
- Java
- JUnit5
Дата и время начала Чт 16 Фев 2023
REST API. Пишем автотесты с Rest-assured. Станислав Васенков.
1. Практика. Пишем тесты на REST API при помощи библиотеки Rest-assured
2. Теория. Основы HTTP-протокола, типы запросов, коды ответов
Дата и время начала Пн 20 Фев 2023
REST API. Декомпозируем UI-тесты. Подключаем отчетность
1. Превращаем UI-взаимодействия в API-запросы
Больше возможностей REST-assured
2.Подключаем Allure-listener
3. Добавляем шаблоны для более красивого отчета
Дата и время начала Чт 23 Фев 2023
REST API. Модели. Спецификации. Станислав Васенков.
1. Убираем тело запроса и ответ в модели
2. Добавляем спецификации
Дополнительное занятие. REST API/ Groovy. Алексей Кузнецов
- Groovy для ассертов и основы языка
- Немного магии Java
- Спецификации
- Шаблоны для Allure
*Внимание! Занятие содержит задание без проверки!
Дополнительное занятие. REST API. Закрепляющее занятие. Дмитрий Тучс
1. Swagger
2. API с другой стороны (backend на spring boot)
3. Интеграция backend со Swagger
4. Контроллеры, возвращающие списки объектов
5. Практика
*Внимание! Занятие содержит задание без проверки!
Дополнительное занятие. SOAP API. Дмитрий Тучс
*Внимание! Занятие содержит задание без проверки!
Дата и время начала Пн 27 Фев 2023
Мобильная автоматизация
#1. Разрабатываем автотесты с Browserstack
1. Практика. Учимся пользоваться инспектором в Browserstack, разрабатываем первые автотесты на iOS / Android с Selenide
2. Практика. Browserstack-API. Забираем логи, видео
3. Теория. Основы тестирования мобильных приложений
Дата и время начала Чт 02 Мар 2023
Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android-устройства и на своем телефоне
1. Настраиваем рабочее место:
- Appium
- Android Studio
- Настраиваем переменные среды
2. Эмулируем Android устройство
3. Подключаем свой телефон
4. Практика. Разрабатываем автотесты с Appium
5. Теория. Основы Appium
[BONUS] Запускаем тесты на школьном Selenoid - Android
Allure TestOps #1. Артем Ерошенко
1. Знакомство с системой
2. Заведение тест-кейсов
3. Создание первого тест-плана
Allure TestOps #2. Артем Ерошенко. Занятие в записи
1. Интеграции с Jenkins и Jira
2.Объединение ручных тестов и автотестов в единый тест-план
3. Метрики, графики, углубленное изучение платформы
4. Администрирование
5. Обзор решений и внедренных проектов
Дата и время начала Пн 06 Мар 2023
Дипломный проект.
Набиваем руку небольшими проектами.
1. Находим интересную нам вакансию (hh.ru / linkedin / @qa_jobs)
2. Делаем небольшой проект - разрабатываем 5-10 простых автотестов на сайт из вакансии, добавляем джобу в дженкинсе с аллюр-отчетом
Добавляем сюда Selenoid, Allure TestOps, Jira, Telegram notifications
3. Отправляем наш проект hr c сопроводительным письмом
Дата и время начала Чт 09 Мар 2023
Переезд на собственную инфраструктуру с ресурсов школы. Егор Иванов (выпускник первого потока)
Настроим тестовый стенд локально. Точно также стенд настраивается на любом VPS, например в DigitalOcean.com
1. Рассмотрим базовые команды Linux, которые понадобятся
2. Доступ к удаленному серверу через ssh Ubuntu
2.1 Доступ к Ubuntu через ssh при помощи публичного RSA ключа
3. На виртуальной машине установим:
- Java
- Docker
- Docker-compose
4. Создадим конфиг для docker-compose
5. Поднимаем Selenoid + Selenoid UI
5.1 Проверяем, как это работает
- 6. Поднимаем Jenkins
6.1 Первичные настройки Jenkins
6.2 Проверка работоспособности
Задание не обязательное. Доступ к инфраструктуре школы останется после окончания обучения (в разумных пределах, конечно).
Дополнительное занятие для студентов школы. Алексей Кузнецов. ООП и ОО-дизайн в UI-тестах для самых маленьких. Занятие в записи
1. Пара слов о себе
2. Наши друзья - переменные.
Зачем они нужны, как их создавать, их роль в тестах
3. Укрощаем рандомайзер. Как использовать генерацию случайных данных в тестах
4. Маленький архитектор или как классы помогают нам отделять логику и работу от других классов
5. Вооружаемся или поговорим ещё немного о Page Object
6. Подключаем тяжелое вооружение. ООП и ОО-дизайн на примере Page Object. Делаем наши page-классы компонентными
7. Роль интерфейсов в проектировании нашего решения или как сделать подобие метода Allure.step своими руками
8. Ещё немного об интерфейсах. Наделяем наши element-классы дополнительными возможностями на основе контрактного поведения
9. Несколько слов о домашнем задании
10. Вопросы и ответы
*Внимание! Занятие содержит задание без проверки!
Проверка и разбор домашних заданий
Live-разбор домашних занятий проходит в вечернее время в дни, когда нет основных занятий (и когда есть время у преподавателя)