Нагрузочное тестирование на Python. Расширенный

- Уроков: 78
- Сложность: easy
- Аудитория: — Для QA-инженеров (ручных и автоматизаторов), которые хотят выйти за пределы функционального тестирования и научиться проверять производительность систем, строить нагрузочные сценарии и анализировать реальные метрики. — Для QA Automation-инженеров, которые уже уверенно пишут автотесты, но хотят прокачать навыки работы с нагрузкой, HTTP/gRPC, сидингом и CI/CD. — Для разработчиков, которые хотят лучше понимать, как их сервисы ведут себя под нагрузкой, как анализировать узкие места и проектировать системы с учётом масштабирования. — Для DevOps и SRE-инженеров, которым важно понимать, как проводить нагрузочное тестирование до релиза, отслеживать системные метрики и автоматизировать проверку SLA. — Для начинающих специалистов, которые планируют войти в IT через тестирование и хотят с самого старта формировать инженерное мышление и разбираться в архитектуре сложных систем. — Для тех, кто ищет работу или готовится к собеседованиям на позиции QA/performance-инженера, и хочет иметь в портфолио не просто курс, а фундаментальный, практически ориентированный опыт. — Для тех, кто уже проходил курсы по Locust, JMeter или k6, но чувствует, что не понимает, зачем и как всё это работает. Этот курс поможет выстроить системную картину и избавиться от подхода «просто запускаю нагрузку». — Для инженеров, которым важно разбираться в микросервисной архитектуре, взаимодействии сервисов, очередях, базе данных, кешах, и понимать, что именно нагружается и как это влияет на систему в целом.
💻 Этот курс — погружение в профессию QA Performance Engineer
Он полностью меняет представление о том, что такое нагрузочное тестирование: не просто запуск скриптов в Locust, а полноценная инженерная практика.
Вы будете работать с учебным микросервисным стендом, приближённым к боевым системам. В курсе собраны проверенные практики из реальных high-load проектов: от анализа метрик в Grafana и настройки профилей нагрузки — до написания собственных моков для gRPC и HTTP, подготовки тестовых данных (сидинга), создания фреймворка и интеграции в CI/CD.
🎯 О чём этот курс?
Прежде всего: этот курс не про инструменты — он про инженерный подход к нагрузочному тестированию. Мы не просто запустим Locust и посмотрим на графики. Мы разберём, как проектировать тесты, анализировать поведение системы под нагрузкой и работать с реальными архитектурными условиями.
Курс охватывает все ключевые аспекты, с которыми сталкиваются инженеры в high-load проектах: от профиля нагрузки и метрик — до CI/CD и построения собственных фреймворков.
В рамках курса вы будете нагружать учебную банковскую систему, построенную на микросервисах. Это не учебный REST-сервер с /ping
, а полноценный стенд, в котором работают Kafka, MinIO, PostgreSQL, Redis, Grafana, Prometheus, cAdvisor, Docker, Docker Compose и десяток HTTP/gRPC микросервисов.
Вы будете:
- ⚙️ практиковаться с двумя протоколами — HTTP и gRPC;
- 🚀 поднимать стенд и запускать тесты прямо в CI/CD;
- 🧪 писать моки для платёжного шлюза;
- 🗃️ делать сидинг данных: пользователей, счета, документы;
- 🧱 создавать нагрузочный фреймворк, готовый к применению в реальных проектах.
Мы разберём всю тему нагрузочного тестирования на атомы — системно, глубоко, без воды. Будет много практики, рабочих приёмов и инженерных решений. Всё, что используется в больших компаниях — собрано и структурировано в одном курсе.
📌 Почему этот курс?
Потому что нагрузочное тестирование — это не про кнопки в интерфейсе и не про запуск скрипта с 1000 виртуальными пользователями. Это — про понимание, как работает система под нагрузкой, и про инженерный подход.
Многие курсы заканчиваются там, где в этом курсе всё только начинается. Они показывают, как задать количество пользователей, как посмотреть RPS — и на этом всё. Но реальное нагрузочное тестирование — это не про инструмент, а про систему, архитектуру, данные и метрики.
В этом курсе:
- вы не просто используете стенд, а разбираете его архитектуру, исследуете связи между сервисами, изучаете поведение БД, кешей, файловых хранилищ и очередей;
- анализируете как клиентские метрики, так и системные: CPU, память, I/O, сеть;
- формируете профиль нагрузки обоснованно, а не ограничиваетесь тестом «1000 пользователей и посмотрим, что будет»;
- пишете переиспользуемые API-клиенты, строите инфраструктуру тестов, интегрируете в CI/CD;
- создаёте моки, пишете сидинг и выводите систему в нужное состояние перед тестом;
- работаете с двумя протоколами — HTTP и gRPC, сравниваете их поведение и последствия для архитектуры;
- строите нагрузочный фреймворк, а не просто "набираете команды".
🎯 Важно: инструмент — это 5–10% успеха. Остальное — это архитектура, системное мышление, работа с данными, метриками, CI/CD, сетями, профилем нагрузки и инженерными гипотезами. Именно этим мы и занимаемся в этом курсе.
👨💻 Опыт, стоящий за курсом
Этот курс — результат многолетней практики в high-load проектах, где количество пользователей измеряется миллионами, а объёмы данных — миллиардами записей. Это не учебные кейсы и не демонстрации для вебинара. Это выжимка из настоящей инженерной работы: с инцидентами, метриками, расследованиями, переработками и архитектурными сдвигами.
За годы работы мне довелось выявить десятки сложных проблем в системах под нагрузкой — от банальных утечек памяти и деградации RPS, до гонок данных и скрытых узких мест на уровне инфраструктуры и взаимодействия сервисов.
📌 Всё, что включено в курс, — это выверенные и реально работающие практики, которые я сам применял в проектах. Здесь нет случайных тем и искусственных примеров. Каждый модуль — это ответ на конкретную задачу, с которой вы можете столкнуться на боевом проекте.
📌 Чем этот курс отличается от других?
🔥 Инженерный подход, а не просто инструмент – большинство курсов учат запускать сценарии в JMeter или Locust, задавая количество пользователей и наблюдая за графиком RPS. Мы идём глубже: разбираемся в архитектуре систем, профилях нагрузки, метриках, инфраструктуре и инженерных гипотезах. Это не «где нажать», а как мыслить и работать как перформанс-инженер.
🔥 Максимум практики и настоящих задач – нагрузочное тестирование пронизывает весь курс: два полноценных модуля посвящены написанию сценариев, запуску, анализу и отладке. Мы тренируемся не на абстрактных API, а на учебной банковской системе с микросервисами, брокером сообщений, базами, кешами и хранилищем.
🔥 Работа с двумя протоколами: HTTP и gRPC – вы освоите оба формата, сравните их поведение под нагрузкой, научитесь писать клиенты, отправлять запросы, анализировать различия в архитектурных последствиях. Эти навыки будут полезны не только перформанс-инженерам, но и QA/automation-инженерам в целом.
🔥 Создание моков с нуля – вы научитесь писать собственные моки (и для HTTP, и для gRPC), использовать их при нагрузке, отделять влияние внешних сервисов от внутренней логики. Это критически важный навык для изоляции и стабилизации тестов.
🔥 Сидинг тестовых данных – один из немногих курсов, где вы научитесь осознанно наполнять систему данными до запуска теста. Будем создавать пользователей, счета, документы, операции — всё это сериализовать, восстанавливать, использовать повторно. Без этого реальные результаты получить невозможно.
🔥 Анализ регрессии производительности – мы не просто запускаем нагрузку и смотрим на цифры «до/после». В курсе вы научитесь выявлять деградацию по ключевым метрикам (RPS, latency, percentiles, ошибки), сопоставлять её с изменениями в коде и инфраструктуре, формулировать гипотезы и подтверждать их. Это основа инженерного подхода: тесты должны не только ломать систему, но и показывать динамику качества между релизами.
🔥 Уникальный Load Testing Hub – в курсе вы познакомитесь с сервисом, который мы используем в продакшн-проектах и который недоступен в других курсах. Это «Allure для нагрузочного тестирования»: единая точка хранения и анализа прогонов, сценариев и метрик. Hub автоматически собирает результаты, строит графики, показывает тренды, сравнивает сценарии с ожиданиями (SLA) и помогает находить регрессии. Это мощный инструмент, с которым вы будете работать как настоящий performance-инженер, а не как «пользователь Locust».
🔥 Настоящий CI/CD и стенд в Docker – курс учит запускать нагрузочные тесты не «вручную с локалки», а в составе настоящего пайплайна. Вы научитесь поднимать стенд в Docker Compose, выполнять прогон, собирать метрики и интегрировать всё это в процесс команды.
🔥 Фреймворк с нуля под ваш проект – итогом станет архитектурно выверенный фреймворк нагрузочного тестирования. Гибкий, масштабируемый, пригодный для HTTP/gRPC сценариев и адаптации под любой backend.
🔥 Работа с метриками как инженер – вы научитесь не просто «смотреть на графики Grafana», а читать их: находить реальные узкие места, интерпретировать CPU/память/сеть, сопоставлять клиентские и системные показатели.
🔥 Много вспомогательных инструментов – мы используем pgAdmin, Kafka UI, MinIO, Postman, curl, grpcurl, Swagger и другие утилиты. Вы не просто увидите их — вы научитесь ими пользоваться ежедневно: подключаться к брокеру, отправлять запросы, проверять БД, просматривать топики, читать .proto-контракты.
🔥 Без воды и абстракций – весь материал прошёл через практику. Всё, что даётся — проверено на реальных high-load проектах. Мы не повторяем документацию, а передаём опыт: с болью, ошибками, выводами и работающими решениями.
🔥 Подача информации – курс можно проходить как в видеоформате, так и по текстовым материалам. Вся информация из видео дублируется в тексте, а также дополняется большим количеством полезных материалов, нюансов, практических советов и рекомендаций.
🔥 Поддержка и обратная связь – каждое задание проверяется вручную с разбором ошибок и рекомендациями. Вы всегда можете задать вопросы и получить развернутый ответ.
📌 Что вас ждёт в курсе?
✅ Практика — в каждом модуле, от простого к сложному
От запуска стенда — до построения полного сценария нагрузки. Два больших модуля посвящены практическому нагрузочному тестированию HTTP и gRPC сервисов, с анализом результатов и улучшением архитектуры тестов.
✅ Полноценный продакшен-подобный стенд с микросервисной архитектурой
Работаем с учебной банковской системой, в которой всё как в бою: Kafka, Redis, PostgreSQL, MinIO, Grafana, Prometheus, Docker и десятки HTTP/gRPC сервисов. Это не «сервер с одной ручкой», а распределённая система с реальной логикой и инфраструктурой.
✅ Пошаговое обучение от основ до CI/CD
Курс строится последовательно: от теории нагрузки и разбора архитектур — к инструментам, практике, аналитике и автоматизации. Вы не просто изучаете команды — вы понимаете, как работает система, и умеете принимать технически обоснованные решения.
✅ Фокус на инженерные практики, а не на инструмент
Мы не учимся «жать кнопки» в GUI. Вы осваиваете всю экосистему: системные ресурсы, архитектуру приложений, метрики, профили нагрузки, CI/CD, мок-сервисы, сидинг, инфраструктуру. Locust — лишь часть процесса, а не его центр.
✅ Разработка с нуля: API-клиенты, фреймворк, моки
Вы создадите всё руками: универсальные HTTP/gRPC-клиенты, сидинг-билдер, мок-сервисы на FastAPI и grpcio, фреймворк нагрузочного тестирования. Это не набор скриптов — это архитектура, пригодная для внедрения в любой реальный проект.
✅ Разделение типов тестов: нагрузка, стресс, отказоустойчивость
Вы разберётесь в видах тестирования производительности и научитесь отличать цели: где мы проверяем поведение при типовой нагрузке, где — устойчивость к перегрузке, а где — восстановление после сбоя.
✅ Разбор метрик на всех уровнях
Будем анализировать как клиентские показатели (latency, RPS, ошибки), так и системные (CPU, память, диск, сеть, загрузка БД и брокеров). Научитесь интерпретировать данные и искать причины, а не просто симптомы.
✅ Анализ регрессий и SLA
Вы научитесь не только собирать метрики, но и выявлять деградации между релизами, отслеживать тренды, подтверждать улучшения после оптимизаций. Курс включает практику сравнения результатов нагрузочных тестов и работы с SLA.
✅ Знакомство с Load Testing Hub
Уникальный сервис аналитики, который мы используем в реальных проектах. Он автоматически агрегирует результаты, строит графики динамики, распределение по методам, сравнивает с эталоном и помогает быстро понять, где именно «просел» сервис.
✅ Интеграция с CI/CD — нагрузка как часть пайплайна
Вы запустите тесты в CI/CD: подготовка окружения, запуск в Docker Compose, выдача результатов, автоматизация. Это уровень зрелых процессов, который редко встречается в учебных курсах.
✅ Инфраструктура как часть навыков
Вы научитесь работать с инструментами, которые окружают нагрузочные тесты в реальной жизни: Git, Docker, pgAdmin, Kafka UI, MinIO, Postman, grpcurl, Swagger/OpenAPI. Эти знания особенно ценны QA и automation-инженерам, работающим в продуктовых командах.
✅ Финальный проект и рекомендации по трудоустройству
В конце курса вы создадите итоговый проект, пригодный для демонстрации работодателю. А также получите советы по оформлению резюме и прохождению собеседований в роли QA Performance Engineer.
💡 Главное: не теория, а боевой опыт
Этот курс — не пересказ документации и не туториал по Locust. Это результат многолетней практики в high-load проектах: десятки запусков под реальной нагрузкой, работа с миллионами пользователей и миллиардами записей в БД, разбор инцидентов, переписывания, архитектурные тупики и реальные выводы.
Вы не просто освоите инструмент — вы научитесь думать как инженер, формулировать гипотезы, находить узкие места, читать метрики, обосновывать архитектурные решения и работать на уровне всей системы.
Locust, JMeter, k6 — это важно, но это лишь 5–10% картины. Остальное — это архитектура, данные, CI/CD, метрики, сеть, код, ошибки, сценарии, причинно-следственные связи. И именно на этом построен курс.
🛠 Как создавался этот курс
Этот курс — не набор случайных лекций. Он создавался долго и осознанно, как инструмент обучения настоящей инженерной практике.
Мне не хотелось делать ещё один «курс про инструмент» — в этом нет смысла. Настоящее нагрузочное тестирование начинается там, где туториалы заканчиваются. Поэтому я спроектировал учебный стенд, максимально приближённый к боевым системам, с Kafka, Redis, S3, микросервисами и нюансами, которые встречаются в реальной архитектуре.
Каждый модуль, каждая практика — это результат многолетнего опыта, через который прошли десятки ошибок, гипотез, переписанных сценариев и расследованных узких мест.
Этот курс задумывался не как образовательный продукт, а как передача инженерного знания — того, которое редко описано в книгах и не помещается в статью.
🤝 Что включает в себя поддержка преподавателя?
- ✅ Подробные ответы на вопросы – в комментариях с развернутыми объяснениями и примерами кода.
- ✅ Детальный фидбэк по заданиям – не просто разбор решения, а рекомендации по улучшению кода, применению лучших практик и реальных подходов из индустрии.
- ✅ Личная консультация – при возникновении сложных вопросов вы всегда можете обратиться к преподавателю и получить развернутый ответ.
- ✅ Проверка всех практических заданий – каждое задание проходит ручную проверку преподавателем, с разбором ошибок и советами по улучшению.
🔥 Как устроено обучение?
В процессе курса вы будете:
- ✅ Изучать теоретическую часть в удобном формате.
- ✅ Смотреть подробные разборы на видео.
- ✅ Решать тесты с автоматической проверкой.
- ✅ Выполнять практические задания с проверкой преподавателя. Будет очень много практики!
Каждый урок максимально насыщен:
- 🎯 Глубокая проработка темы с разбором нюансов и тонкостей.
- 🔎 Практика в видео + тестовые задания + советы и рекомендации.
⚠️ Важно! Модули в курсе будут открываться постепенно. Чтобы перейти к следующему модулю, необходимо набрать определенное количество баллов в текущем. Это вынужденная мера. Выполнять все задания не требуется, достаточно выполнить основную часть.
📚 Дополнительные бесплатные материалы
Перед прохождением курса, вы можете ознакомиться с моими статьями:
- 📄 Нагрузочное тестирование на Python и Locust с запуском на CI/CD
- 📄 Как выбрать профиль нагрузки: 5 ключевых правил
- 📄 Сидинг тестовых данных: как готовить окружение перед нагрузочным тестированием
- 📄 Правильный инструмент для аналитики нагрузочного тестирования
- 📄 Правильный инструмент для аналитики нагрузочного тестирования. Часть 2
- 📄 И другие
🔗 Мои ресурсы:
- LinkedIn: https://www.linkedin.com/in/nikita-filonov-b945871a6/
- Medium: https://medium.com/@filonov.nikitkaa
- GitHub: https://github.com/Nikita-Filonov
- Habr: https://habr.com/ru/users/sound_right/articles/
📌 Об авторских правах и официальной покупке курса
Курс распространяется только на платформе Stepik. Приобретая его здесь, вы получаете:
- Полный доступ ко всем материалам: видео, тексты, задания, тесты, инфраструктура;
- Проверку заданий и развёрнутые рекомендации от меня лично;
- Обновления и новые модули, которые появляются по мере развития курса;
- Комментарии и поддержку — я регулярно отвечаю на вопросы, помогаю с кодом и разборами;
- Актуальные версии стенда, конфигов и приложений, которые синхронизированы с уроками.
🎓 Курс построен как живой инженерный продукт — с инфраструктурой, CI/CD, задачами и поддержкой. Всё это работает только в официальной версии.
💬 Если вы находите курс на сторонних сайтах — знайте, что в таких копиях:
- отсутствуют задания с проверкой;
- нет комментариев, обновлений и обратной связи;
- часто используются устаревшие материалы или неполные версии уроков.
Это уже не тот курс, который я задумывал.
Если вы хотите пройти курс «как он есть», с поддержкой, проверкой и развитием — проходите его здесь, на Stepik.
-
Базовые знания Python. Понимание синтаксиса языка, умение работать с переменными, функциями, базовыми классами и библиотеками. Вам не нужно быть экспертом, но знание основ — обязательно.
-
Базовое понимание принципов программирования. Знание ООП, понимание структур данных (списки, словари и т.п.), базовых алгоритмов и принципов разработки — поможет увереннее осваивать архитектуру фреймворка и API-клиентов.
-
Готовность к обучению и инженерному мышлению. Курс предполагает активную работу: придётся разбираться в новых концепциях, запускать стенды, читать логи, анализировать метрики и писать код. Интерес к инженерной стороне процессов — важнее, чем опыт с конкретными инструментами.
-
Уверенное владение компьютером и рабочим окружением. Умение устанавливать и настраивать программы, работать с терминалом, пользоваться IDE (например, PyCharm или VS Code), использовать браузер для ручного тестирования и работы с Postman.
-
Рабочее окружение. Для прохождения некоторых уроков может понадобиться VPN (в зависимости от региона). Также вам потребуется современный компьютер с нормальной производительностью — достаточно ноутбука с 8 ГБ оперативной памяти и свежей системой. Ничего «сверхмощного» не требуется, но на старом железе запуск тестового стенда может быть затруднён.