"Автоматизация тестирования REST API" от Алексея Коледачкина
Подробнее
Что нужно для старта
- — Уверенное владение Python: ООП, классы, исключения, декораторы, типизация (type hints).
- — Опыт работы с pytest: фикстуры, параметризация, conftest.py, маркеры.
- — Понимание HTTP и REST на практическом уровне: методы, статус-коды, заголовки, JSON, авторизация через токен.
- — Опыт работы с виртуальным окружением, pip и Git.
- — Установленный Python 3.10+ и IDE (PyCharm или VS Code).
- — Желательно: базовое знакомство с Allure и CI (GitHub Actions / GitLab CI), но не критично.
- Если ещё не знаете Python и pytest — сначала пройдите курс по ним, у меня они тоже есть, иначе материал будет идти тяжело.
Что вы получите
- Отправлять GET, POST, PUT, PATCH, DELETE-запросы через requests и httpx с корректной передачей headers, params, json и files.
- Валидировать ответы API через Pydantic-модели с использованием Field, Literal, Optional и алиасов для camelCase ↔ snake_case.
- Строить вложенные Pydantic-модели для сложных JSON-структур и обрабатывать ValidationError по production-стандартам.
- Применять Service Object Model для построения масштабируемой архитектуры API-автотестов.
- Разделять код на endpoints, payloads и api-методы для поддерживаемости тестов в долгосрочной перспективе.
- Настраивать логирование с ротацией файлов и одновременным выводом в файл и консоль.
- Запускать нагрузочные тесты через Locust и анализировать результаты.
- Генерировать клиент API из swagger.json через инструмент API Game Changer.
- Интегрировать автотесты с Allure для удобной отчётности по результатам прогона.
- Обрабатывать таймауты, HTTP-ошибки и валидационные исключения в стиле production-кода.
- Оформлять автотесты по индустриальным стандартам, готовые к показу на технических собеседованиях.
Для кого этот курс
- Курс для тех, кто уже пишет автотесты на Python и хочет прокачаться именно в API-направлении: от хаотичных скриптов с requests к архитектуре, асинхронности и production-подходам.
- Кому будет полезно:
- — QA-автоматизаторам с опытом UI (Selenium/Playwright), которые впервые сталкиваются с серьёзным API-проектом и не хотят изобретать велосипед.
- — Backend-разработчикам, которые пишут на Python и хотят покрыть свой API качественными интеграционными тестами по индустриальным паттернам.
- — Python-разработчикам, которым нужно глубже разобраться в теме
- .
- Когда курс особенно полезен:
- — На проекте появился API, который нужно покрыть автотестами, а готовых паттернов в команде нет.
- — Уже пишете API-тесты, но они превратились в копипасту — пора разобраться с архитектурой через Service Object Model.
- — Готовитесь к собеседованию на Middle/Senior AQA, где спрашивают про Pydantic, асинхронность и подходы к организации тестов.
- — Хотите перейти от requests к httpx и асинхронным тестам, чтобы ускорить прогон в десятки раз.
Программа курса
- Видеоурок
- Введение в requests
- Работа с GET-запросами
- Работа с POST, PUT, PATCH-запросами
- Работа с DELETE-запросами
- Полезные API для практики
- Полезные советы при выполнении домашней работы
- Самостоятельная работа
- Видеоурок
- Что такое Pydantic?
- Фундамент Pydantic: BaseModel
- Автоматическое преобразование типов
- Обработка ошибок валидации
- Работа с Optional полями
- Вложенные модели
- Основные методы BaseModel
- Самостоятельная работа
- Видеоурок
- Валидация списков
- Кастомные валидаторы
- Модуль Typing
- Основные типы из модуля typing
- Literal - ограничение возможных значений
- Класс Field - дополнительные параметры полей
- Числовые ограничения с Field
- Строковые ограничения с Field
- Дополнительные возможности Field
- Алиасы (Aliases) - работа с разными стилями именования
- Комплексный пример
- Практические советы
- Самостоятельная работа
- Видеоурок
- Что такое Service Object Model и зачем он нужен
- Структура проекта
- API хелпер
- Видеоурок
- Код с занятия
- Слой services/ — Service Object
- Слой endpoints.py — адреса API
- Слой payloads.py — тела запросов
- Слой models/ — Pydantic-модели ответов
- Слой utils/helper.py — общая логика валидации ответов
- Слой config/ — окружения и заголовки
- Слой auth/ — токены и фабрика ролей
- conftest.py и BaseTest — точка входа в тесты
- Полный цикл одного теста: что происходит и в каком порядке
- Логирование и Allure-отчёты
- Как добавить новый сервис в проект (пошагово)
- Разбор тонких мест и типичных ошибок в коде
- Видеоурок
- Что такое логирование
- Уровни логирования
- Настройка логирования и запись в файл
- Логирование в несколько мест (в файл и консоль)
- Ротация логов
- Создание логера
- Видеоурок
- Что такое Locust и зачем он нужен
- Чем нагрузочный тест отличается от функционального
- Структура проекта и связь с SOM
- locustfile.py — точка входа
- config.py — переменные окружения
- client.py — обёртка LocustRestClient
- tasks/ — атомарные операции с API
- flows/ — бизнес-сценарии
- Как Locust «крутит» нагрузку: жизненный цикл виртуального пользо
- Запуск Locust: UI и headless-режимы
- Чтение метрик: что показывает Locust в интерфейсе
- Параметризация: wait_time, weight, tasks
- Как добавить новый сценарий (пошагово)
- Разбор тонких мест и неточностей в коде
- Приложение: команды для запуска
- Видеоурок
- Настройки проекта
- Введение в httpx
- Синхронные запросы (как в requests)
- Работа с POST, PUT, PATCH-запросами
- Работа с DELETE-запросами
- Теория: Асинхронность в Python
- Асинхронность в автотестах: реальные сценарии
- Главная фишка httpx: Асинхронные запросы
- Использование Client (рекомендуемый подход)
- Настройка таймаутов
- HTTP/2 поддержка
- Обработка ошибок
- Полезные API для практики
- Полезные советы
- Миграция с requests на httpx
01Библиотека requests
- Видеоурок
- Введение в requests
- Работа с GET-запросами
- Работа с POST, PUT, PATCH-запросами
- Работа с DELETE-запросами
- Полезные API для практики
- Полезные советы при выполнении домашней работы
- Самостоятельная работа
02 Pydantic - Часть 1
- Видеоурок
- Что такое Pydantic?
- Фундамент Pydantic: BaseModel
- Автоматическое преобразование типов
- Обработка ошибок валидации
- Работа с Optional полями
- Вложенные модели
- Основные методы BaseModel
- Самостоятельная работа
03Pydantic - Часть 2
- Видеоурок
- Валидация списков
- Кастомные валидаторы
- Модуль Typing
- Основные типы из модуля typing
- Literal - ограничение возможных значений
- Класс Field - дополнительные параметры полей
- Числовые ограничения с Field
- Строковые ограничения с Field
- Дополнительные возможности Field
- Алиасы (Aliases) - работа с разными стилями именования
- Комплексный пример
- Практические советы
- Самостоятельная работа
04Service Object Model - Часть 1
- Видеоурок
- Что такое Service Object Model и зачем он нужен
- Структура проекта
- API хелпер
05Service Object Model - Часть 2
- Видеоурок
- Код с занятия
- Слой services/ — Service Object
- Слой endpoints.py — адреса API
- Слой payloads.py — тела запросов
- Слой models/ — Pydantic-модели ответов
- Слой utils/helper.py — общая логика валидации ответов
- Слой config/ — окружения и заголовки
- Слой auth/ — токены и фабрика ролей
- conftest.py и BaseTest — точка входа в тесты
- Полный цикл одного теста: что происходит и в каком порядке
- Логирование и Allure-отчёты
- Как добавить новый сервис в проект (пошагово)
- Разбор тонких мест и типичных ошибок в коде
06Логирование
- Видеоурок
- Что такое логирование
- Уровни логирования
- Настройка логирования и запись в файл
- Логирование в несколько мест (в файл и консоль)
- Ротация логов
- Создание логера
07Введение в Locust
- Видеоурок
- Что такое Locust и зачем он нужен
- Чем нагрузочный тест отличается от функционального
- Структура проекта и связь с SOM
- locustfile.py — точка входа
- config.py — переменные окружения
- client.py — обёртка LocustRestClient
- tasks/ — атомарные операции с API
- flows/ — бизнес-сценарии
- Как Locust «крутит» нагрузку: жизненный цикл виртуального пользо
- Запуск Locust: UI и headless-режимы
- Чтение метрик: что показывает Locust в интерфейсе
- Параметризация: wait_time, weight, tasks
- Как добавить новый сценарий (пошагово)
- Разбор тонких мест и неточностей в коде
- Приложение: команды для запуска
08API Game Changer
- Видеоурок
- Настройки проекта
09Работа с HTTP-запросами: библиотека httpx
- Введение в httpx
- Синхронные запросы (как в requests)
- Работа с POST, PUT, PATCH-запросами
- Работа с DELETE-запросами
- Теория: Асинхронность в Python
- Асинхронность в автотестах: реальные сценарии
- Главная фишка httpx: Асинхронные запросы
- Использование Client (рекомендуемый подход)
- Настройка таймаутов
- HTTP/2 поддержка
- Обработка ошибок
- Полезные API для практики
- Полезные советы
- Миграция с requests на httpx
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «"Автоматизация тестирования REST API" от Алексея Коледачкина» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 14 сентября 2026 г.

Stepik 

















