10/06/2022

Курс по автоматизации тестирования Java

Курс по автоматизации тестирования Java

Вводное занятие. Сразу к практике!

Вводное занятие. 13-ый поток

Selenium 4. Новые возможности

Профессионально работаем с IntelliJ IDEA Юрий Артамонов

  1. Основы
  2. Git and Github
  3. Docker
  4. Базы данных
  5. HTTP Client
  6. Selenium
  7. BDD Support

https://www.youtube.com/watch?v=5qrn-Z5Put4

https://www.youtube.com/watch?v=zp0qC6JT0rE

2. Git. Github. Погружаемся. Дмитрий Тучс

  1. Еще раз повторим основы Git & Github.
  2. Основы ветвления, pull requests.

Дополнительное занятие. Станислав Васенков. «GitHub. Readme»

Принимаем пулреквесты

3. Погружаемся в инструментарий и библиотеки. Станислав Васенков.

  1. Теория: Gradle, JUnit5, Selenide.
  2. Практика. Работаем с тренажером demoqa.com
  3. Рассмотрим подробнее возможности Selenide и CSS/Xpath-селекторы

4. Основы Java. Дмитрий Тучс.

  1. Src - main
  2. Класс с точки зрения файлов
  3. Класс с точки зрения Java
  4. Class fields - переменные (в чем разница)
  5. Примитивные типы данных
  6. Литералы
  7. Операторы
  8. Управляющие конструкции
  9. Метод, как описание поведения
  10. Создание обьектов и вызов методов

QA.GURU 13-ый поток. Дмитрий Тучс. «Основы Java»

Основы Java #2. Продолжение

QA.GURU 11-ый поток. Дополнительное занятие. Дмитрий Тучс. «Java. Продолжение»

Дополнительное занятие. Дмитрий Тучс. ООП на примере Java

QA.GURU 8-ой поток. Дополнительное занятие. Дмитрий Тучс. «Основы Java. Продолжение»

Основы Java #3. Продолжение

QA.GURU 11-ый поток. Дополнительное занятие. Дмитрий Тучс. «Основы Java. Продолжение»

QA.GURU 11-ый поток. Дмитрий Тучс. Дополнительное занятие «Основы Java. Продолжение. Часть II»

5. Продолжаем разрабатывать автотесты. PageObjects. Станислав Васенков.

  1. Добавляем в код PageObjects
  2. Изучаем подходы - степовой, сценарный, dsl
  3. Добавляем PageComponents

Станислав Васенков — Как Testid-strategy победила PageObject и BDD/Cucumber монстров

6. Продолжаем разрабатывать автотесты. Генерация тестовых данных. Станислав Васенков.

  1. Генерим рандомные значения используя встроенные библиотеки
  2. Используем JavaFaker

7. JUnit 5. Дмитрий Тучс

  1. Аннотация @Test
  2. Что из себя представляют аннотации в Java
  3. Пишем свою простейшую реализацию JUnit
  4. @Disabled , @DisplayName
  5. тест кейс - что такое и из чего состоит
  6. Параметризованные тесты - концепция
  • Sources (дата-провайдеры)
  • Нэйминг

junit5/junit4/assertions: кто как готовит свои тесты, кто на чем обжегся и какие вещи никогда не стал бы использовать

Дмитрий Тучс — JUnit 5 Parallel test execution. Теория и практика

QA.GURU 10-ый поток. Дополнительное занятие. Дмитрий Тучс. «JUnit 5. Продолжение»

8. Selenide #1. Алексей Виноградов

  1. Лайвкодинг - тесты для GitHub
  2. DOM для начинающих
  3. Основные функции библиотеки Selenide (справочник-шпаргалка)

Обзор новинок Selenide и Q&A

10. Allure Reports. Артём Ерошенко

  1. Практика. Подключение Allure Reports и настройка отчетности о прохождении автотестов.
  2. Практика. Построение более информативной отчетности c вложениями:
  • Прикладываем скриншоты, файлы, логи и другие вложения в отчет.
  1. Теория. Обзор возможностей Allure Reports.

9. Работаем с файлами. Дмитрий Тучс

  1. Как скачать и прочитать файл
  2. Проверяем контент в .txt, .pdf, .xls/.xlsx, .doc/.docx, .zip

11. Jenkins. Создаем первую задачу. Станислав Васенков.

  1. Практика. Создаем задачу (Job), связываем с репозиторием в Github, запускаем тесты удаленно.
  2. Теория. Основы Jenkins.
  3. Теория. Основы CI/CD.
  4. Работа в парах: создаем друг другу джобы и запускаем чужой код

12. Управляем параметрами в коде и в Jenkins. Станислав Васенков.

  1. Передаем параметры в код из командной строки
  2. Прячем приватные данные с библиотекой owner
  3. Передаем параметры из jenkins

13. Телеграм-бот. Отправляем уведомления о результатах прохождении автотестов. Станислав Васенков.

  1. Практика. Пишем телеграмм-бота.
  2. Практика. Постобработка сборки. Настраиваем отправку уведомлений в Jenkins.
  3. Теория. Обзор возможностей Telegram API.

14. Учимся быстро разрабатывать готовые проекты для тестовых заданий. Станислав Васенков.

Набиваем руку небольшими проектами.

  1. Находим интересную нам вакансию (hh.ru / linkedin / @qa_jobs)
  2. Делаем небольшой проект:
  • разрабатываем 5-10 простых автотестов на сайт из вакансии,
    • создаем задачу в jenkins,
  • прячем секретные данные с owner (более развернуто будет в следующем занятии)
  • настраиваем Allure-отчет, добавляем вложения:
    • снимки экрана,
    • логи браузера,
    • видеозапись теста,
  • настраиваем нотификация в telegram / slack.

По мере прохождения курса добавим сюда:

  • автотесты на API
  • тест-план Allure TestOps - с ручными и автоматизированными тестами
  • интеграцию с Jira
  1. Отправляем наш проект hr c сопроводительным письмом

15. Selenoid. Роман Орлов

  1. Практика. Добавляем контейнеризацию к задаче в Jenkins.
  2. Теория. Основы Docker. Selenoid

Дополнительное занятие. Selenoid. Роман Орлов (на GO)

16. Библиотека Owner. Артём Ерошенко

  1. Правильно организуем хранение свойств (properties) в проекте с библиотекой Owner
  2. Прячем секретные данные в Jenkins

17. Selenide #2. Алексей Виноградов

  1. Практика:
  • Написание автотестов на Selenide.
  • Тестирование виджетов.
  1. Теория:
  • Закрепление знаний полученных на практике
  • Java
  • JUnit5

18. REST API. Пишем автотесты с Rest-assured. Станислав Васенков.

  1. Практика. Пишем тесты на REST API при помощи библиотеки Rest-assured
  2. Теория. Основы HTTP-протокола, типы запросов, коды ответов.

Алексей Кузнецов. «Retrofit2»

REST API. Декомпозируем UI-тесты. Подключаем отчетность

  1. Превращаем UI-взаимодействия в Api-запросы. Больше возможностей REST-assured
  2. Подключаем Allure-listener
  3. Добавляем шаблоны для более красивого отчета

19. REST API. Продолжаем изучать. Станислав Васенков.

  1. Практика. Декомпозируем UI-автотест в несколько API-автотестов. Больше возможностей REST-assured
  2. Изучаем вспомогательные инструменты:
  • Postman,
  • Charles/Fiddler,
  • chrome dev tools (вкладка Network)
  1. Теория. Больше про REST API.
  2. Теория. Обзор SOAP API

20. REST API/ Groovy. Алексей Кузнецов

  • Groovy для ассертов и основы языка
  • Немного магии java
  • Спецификации
  • Шаблоны для Allure

Дополнительное занятие. REST API. Дмитрий Тучс

  • Swagger
  • API с другой стороны (backend на spring boot)
  • Интеграция backend со Swagger
  • Контроллеры, возвращающие списки объектов
  • Практика

Дополнительное занятие. SOAP API. Дмитрий Тучс

  1. Основы протокола
  2. Soap UI

21. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack

  1. Практика. Учимся пользоваться инспектором в Browserstack, разрабатываем первые автотесты на iOS / Android с Selenide
  2. Практика. Browserstack-API. Забираем логи, видео.
  3. Теория. Основы тестирования мобильных приложений.

22. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android-устройства и на своем телефоне

  1. Настраиваем рабочее место:
  • Appium
  • Android Studio
  • Настраиваем переменные среды
  1. Эмулируем Android устройство
  2. Подключаем свой телефон
  3. Практика. Разрабатываем автотесты с Appium.
  4. Теория. Основы Appium.

[BONUS] Запускаем тесты на школьном Selenoid - Android

23. Allure TestOps #1. Артем Ерошенко

  1. Знакомство с системой.
  2. Заведение тест-кейсов.
  3. Создание первого тест-плана.

24. Allure TestOps #2. Артем Ерошенко

  1. Интеграции с Jenkins и Jira
  2. Объединение ручных тестов и автотестов в единый тест-план
  3. Метрики, графики, углубленное изучение платформы
  4. Администрирование
  5. Обзор решений и внедренных проектов

25. Дипломный проект

Набиваем руку небольшими проектами.

  1. Находим интересную нам вакансию (hh.ru / linkedin / @qa_jobs)
  2. Делаем небольшой проект - разрабатываем 5-10 простых автотестов на сайт из вакансии, добавляем джобу в дженкинсе с аллюр-отчетом Добавляем сюда Selenoid, Allure TestOps, Jira, Telegram notifications
  3. Отправляем наш проект hr c сопроводительным письмом

Проверка дипломных проектов 7-го потока

Проверка дипломных проектов 8-го потока

26. Переезд на собственную инфраструктуру с ресурсов школы. Егор Иванов (выпускник первого потока)

Настроим тестовый стенд локально. Точно также стенд настраивается на любом VPS, например в DigitalOcean.com

  1. Рассмотрим базовые команды Linux, которые понадобятся
  2. Доступ к удаленному серверу через ssh Ubuntu
    2.1 Доступ к Ubuntu через ssh при помощи публичного RSA ключа
  3. На виртуальной машине установим:
    3.1 Java
    3.2 Docker
    3.3 Docker-compose
  4. Создаем конфиг для docker-compose
  5. Поднимаем Selenoid + Selenoid UI
    5.1 Проверяем, как это работает
  6. Поднимаем Jenkins
    6.1 Первичные настройки Jenkins.
    6.2 Проверка работоспособности.

Задание не обязательное. Доступ к инфраструктуре школы останется после окончания обучения (в разумных пределах, конечно).

Дополнительное занятие. SQL + работа с базой из Java. Дмитрий Тучс.

Дополнительное занятие. Дмитрий Тучс. Тестируем gRPC

Делаем ревью библиотеки allure-notifications. Дмитрий Тучс. Алексей Кузнецов

Делаем ревью автотестов для Allure TestOps. Дмитрий Тучс. Александр Киреев

Дорабатываем сервис генерации проектов start.autotests.cloud. Станислав Васенков

QA.GURU. Станислав Васенков. «Расширенное занятие по уведомлениям о статусе ваших автотестов.»