Урок 1: Пошагово создадим протофайл для нового сервиса и сгенерируем серверный код
Урок 2: Разработаем репозиторий, который будет эмулировать взаимодействие с внешними ресурсами
Урок 3:Реализуем бизнес-логику сервиса с использованием mock-репозитория и запустим локальный gRPC сервер
GRPC. Клиентская часть и разработка автотестов
Урок 1: Покажем, как использовать pbreflect для скачивания протофайлов, генерации клиентской части, настройки канала, фикстур и написания первого теста
Урок 2: Разработаем интерцепторы для логирования, добавим Allure-метки и подключим всё к каналу
Урок 3: Используем Wiremock для мокирования тестируемого сервиса и добавим параметр pytest для переключения между тестами с Wiremock и целевым сервисом
Программа курса
Программу постоянно обновляем, чтобы вы учились только актуальному.
1
Вводное занятие Python Advanced
– О чём этот курс? Кому он подойдёт? Разница курсов с Python Base. – Обзор учебного проекта. – Вопросы и ответы.
2
Разбор домашних заданий к вводному занятию
Проверим домашку со вводного занятия, дз по разработке микросервиса c FastAPI.
3
Построение минимального микросервиса с FastAPI и тесты
- Добавим реализацию базы данных, вынесем зашитые данные из эндпоинтов - Обновим тесты
5
Деплоим микросервис с GitHub Actions
- Запустим микросервис и тесты в docker, docker-compose - Запустим всё с GitHub Actions
6
Знакомство с проектом Niffler
- Обзор проекта, запустим локально: настройка в PyCharm - Запуск проекта в Docker, отличия для Windows и Linux - Введение в pytest Fixtures: функции, классы - Разнесение фикстур по разным файлам для авто-тестов
7
Расширяем Pytest: пишем свои фикстуры и управляем запуском теста
- Жизненный цикл теста - Фикстуры для работы с WebDriver
8
Автоматизация на проекте «с нуля» – строим минимальный фреймворк
- Для чего стоит и не стоит писать свой фреймворк - Решаемые задачи - Как не писать фреймворк. Если пишешь – о чем думать
9
Работаем с реляционными базами данных из тестов: Psycopg2
- Psycopg2 – краткая теория - Пишем код на Psycopg2 - Транзакции в Psycopg2
10
Работаем с реляционными базами данных из тестов: SQLAlchemy
- SQLAlchemy – краткая теория - Написание кода с SQLAlchemy - Применимость DAO и Repository
11
Параллелизация тестов в pytest: Как не выстрелить себе в ногу
На этом занятии научишься: -Краткой теории concurrency -Написанию безопасного в многопоточной среде кода тестов -Особенностям работы с pytest fixtures при многопоточном выполнении тестов
Научим тебя писать WEB и API тесты с созданием всех тестовых данных через pytest fixtures
19
Тестирование микросервисов в docker-compose
Тут ты будешь: - Поднимать микросервисы через docker-compose - Тестировать микросервисы: теория и практика - Selenoid & Selenoid UI
20
Wiremock в тестах
Расскажем тебе как: - Использовать in-memory Wiremock прямо в тестах - Использовать HTTP и gRPC Wiremock в docker-compose.
21
Тестируем GraphQL сервисы с помощью requests
В этом модуле познакомим тебя с: - Теорией и применимостью - GraphQL в FastAPI - Тестирование GraphQL – requests.
22
Тестируем SOAP сервисы с помощью requests
- Теория и применимость - SOAP в FastAPI - Тестирование SOAP – requests - Интеграция с Allure. lxml
23
Apache kafka - тестируем асинхронные микросервисы
В этом занятии научим тебя: - Apache Kafka Теория и применимость - Kafka в проекте на FastAPI - Как писать свой Consumer и pytest fixture для его использования в тестах.
24
CI/CD - pipeline, к которому ты шел
Рассмотришь вопросы сборки проекта и деплоя на прод с использованием GHA
25
Нативное тестирование Android – Kaspresso
Нативное тестирование Android – Kaspresso
26
Нативное тестирование iOS – Swift + xctest. Часть I
Тут ты освоишь: - Сравнение XCUITest c другими фреймворками – плюсы и минусы - Среда разработки Xcode - Полезные вспомогательные приложения - Подпись приложений и модели распространения iOS приложений - Основы программирования на Swift - Swift Playground - Фреймворки XCTest и XCUITest
27
Нативное тестирование iOS – Swift + XCTest. Часть II
Тут ты продолжишь изучать: - Менеджеры зависимостей – SPM, cocoapods и carthage - Паттерны автотестов – Page Factory и Page Object - Мокирование сети в тестах - Интеграция с Allure - Интеграция с СI/CD - Fastlane - Интеграция со Slack Github Action + iOS - Сторонние нативные фреймворки iOS автоматизации - Q&A + полезные ссылки
28
Нативное тестирование iOS. XCTest. Часть III
А в этом занятии покажем тебе: 1. Ассерты и ожидания 2. Взаимодействие со системными диалогами 3. XCTContext - делаем тест отчет информативным 4. Выгрузка отчетов в testops после прогона в Xcode 5. Кастомные аннотации для отчета
29
Конференции – готовим доклад и себя к выступлению
На этом уроке покажем тебе: - Как попасть на конференцию спикером - Как готовиться - Презентация – хорошая и плохая - Дискуссия до и после доклада - Ради чего? Плюсы и минусы
Наши преподаватели формируют облик индустрии. QA-инженеры по всему миру ежедневно используют ПО, над которым они работают.
Станислав Васенков
Основатель QA.GURU
Больше 10 лет опыта в автоматизации тестирования. Основатель сообщества в Telegram @qa_automation, организатор конференции qa.cyprusitforum.com.
Артём Ерошенко
Qameta Software
Больше 14 лет занимается автоматизацией тестирования сервисов в Яндексе. С 2011 года разработчик Allure Reports и Allure TestOps, использующихся тестировщиками по всему миру.
Сергей Хомутинин
QА Lead
6 лет опыта SDET — от крупного энтерпрайза до миниатюрных стартапов. Контрибьютор опенсорсных проектов, связанных с тестированием на Pythоn, Java, TypeScript.
Дмитрий Тучс
Dodo Brands
В IT больше 12 лет. Начинал в аналитике, управлял проектами. Сейчас — Head of QA at Dodo Brands. Занимается менторством, пишет и автоматизирует на Java.
Александр Котляр
QA Lead
В тестировании с 2015 года, 3 года автоматизировал на Java, с 2018 года автоматизирует на Python. Контрибьютор Selene, webdriver-manager. Автор gitlab-allure-history, local-allure-history-trends-bash, pytest-rocketchat.
Владислав Зингер
Dodo Engineering
Занимается автоматизацией с 2015 года. Начинал в IT .Net (С#) разработчиком. Сейчас QA automation инженер и mobile SRE в Dodo Brands.
Валерий Меньшиков
Senior Python Developer в Ozon Tech
С 2018 года в автоматизации, ранее Lead Automation QA в Ozon Tech, сейчас — Senior Python Developer. Эксперт по автоматизации back-end, автор open-source проектов pbreflect и restcodegen. Основатель школы aqa-engineer.com.