Автоматизатор тестирования на Python

Яндекс Практикум
4,7
Поможем освоить автоматизацию, чтобы избавиться от рутины и больше зарабатывать
4,79
На основании отзывов пользователей
на Отзовике, IRecommend и TutorTop
21 500 /мес
или сразу 98 000
Смотреть курс
Программа обучения

Базовый курс длится 5, а расширенный — 6 месяцев, потому что там больше тем и проектов. Занятиям нужно уделять ~15 часов в неделю.

Бесплатное введение

Узнаете чуть больше о курсе и о том, как проходит учёба: оцените подачу материала и тренажёр для написания кода. Введение поможет понять, подходит ли вам такой формат.

Основы GIT

Настроите Git, разберёте основные команды: ветвление и слияние изменений. Погрузитесь в работу с GitHub и подготовитесь к первому проекту.

Git
Командная строка
GitHub
Коммиты
Репозитории
Ветки
Fork
Настройка окружения и знакомство с командной строкой

Что такое Git. Как работать с командной строкой — навигация и советы. Операции с папками и файлами: создание, копирование, перемещение, чтение и удаление. Эффективная работа с командной строкой. Установка и настройка Git.

Работа с Git

Инициализация репозитория и добавление файлов. Создание первого коммита. Знакомство с историей коммитов и GitHub. Регистрация на GitHub. Создание удалённого репозитория. Что такое SSH. SSH‑ключ: генерация и привязывание к GitHub. Связывание и синхронизация локального и удалённого репозитория.

Основы работы с ветками в Git

Скачивание и клонирование репозитория. Выполнение Fork. Создание ветки.

Основы Python

Познакомитесь с базовыми конструкциями языка: классами и объектами, функциями, ветвлениями и так далее. Будете сразу применять знания на практике — писать код внутри уроков и в среде разработки VS Code.

Основы Python
Функции
Списки
Классы
Объекты
VS Code
Циклы
Как устроено обучение

Сроки и дедлайны. Как всё организовано. Что поможет справиться. Ошибки и ответственность.

Знакомство с Python

Язык Python. Вывод на экран. Пробелы в выводе на экран. Переменные. Как называть переменные. Константы. Типы данных: числа и строки. Операции с целыми числами. Конкатенация строк. Форматирование строк. Преобразование типов. Дробные числа.

Ветвления

Логические выражения. Тип данных bool. Ветвление кода. Ветвление кода с else. Множественные ветвления. Логические операции. Приоритет логических операторов.

Списки

Знакомство со списками. Длина списка и индексы. Списки и индексы: практика. Операции со списками: append(), insert() и remove(). Операции со списками: pop() и in. Сложение списков. Списки списков и копирование. Операции со списками: практика.

Циклы

Циклы. Диапазоны от и до. Функция reversed(). Перебор через обратный срез списка. Вложенные циклы. Цикл с условием. Циклы: практика.

Операции со строками

Длина строки, индексы и подстроки. Метод split(). Метод replace().

Словари и коллекции

Что такое словарь. Как получить и изменить значение в словаре. Как добавить элементы в словарь. Метод get(). Методы keys() и values(). Перебор элементов в словаре. Как проверить наличие элемента. Словари: практика.

Функции

Функция. Как объявить и вызвать функцию. Аргументы и параметры. Возврат значений из функции. Значение по умолчанию и разные виды аргументов. Библиотеки. Вызов функции из функции. Ошибки и их обработка. Ошибки в списках и словарях. Функции: практика.

Классы и объекты

Классы и объекты. Как создать класс. Как создать объект. Ошибка AttributeError. Как объявить и вызвать метод. Встроенные методы: __dict__. Как взаимодействуют классы.

VS Code

Командная строка. Как запустить Python в командной строке. Среда разработки VS Code. Как создать проект. Интерфейс VS Code. Запуск и отладка проекта.

Решите несколько комплексных задач на Python. Напишете программы, которые печатают текст, считают время и составляют таблицы

ООП: наследование и полиморфизм

Изучите основы объектно-ориентированного программирования (ООП). Это принципы, которые помогают решать сложные задачи, настраивать методы и классы, создавать логичные иерархии. ООП помогает писать программы, которые легко поддерживать и проверять.

ООП
Полиморфизм
Наследование
Миксины
Наследование

Что такое ООП. Наследование. Наследование с конструктором. Функция super(). Переопределение методов. Переопределение методов: меняется сигнатура. Переопределение и super(). Полиморфизм.

Множественное наследование

Множественное наследование. Множественное наследование с конструктором. Множественное наследование и super(). Ромбовидное наследование. Миксины. Наследование: практика.

Статические методы

Что такое статический метод. Как вызвать статический метод через класс. Как применять статический метод на практике.

Методы класса

Что такое методы класса. Как применять методы класса.

Область видимости

Область видимости. Когда какую область видимости использовать.

С помощью принципов ООП решите несколько комплексных задач на Python

ООП: инкапсуляция

Продолжите изучать ООП. После этого модуля сможете решать комплексные сложные задачи в коде. Чтобы закрепить полученные навыки, напишете небольшое приложение.

Лямбда-функции
Инкапсуляция
Модификаторы доступа
Лямбда-функции

Что такое лямбда-функции. Выражение и аргументы лямбда-функций. Функция filter(). Функция map().

Инкапсуляция

Модификаторы доступа. Модификатор private. Что такое инкапсуляция. Геттеры и сеттеры. Свойства. Инкапсуляция: практика

Обработка исключений

Что такое исключения. Как обрабатывать исключения. Разные типы исключений и их обработка. Как определить тип исключения. Продвинутая обработка исключений. Вызов исключений. Как создать исключение. Обработка исключений: практика.

Напишете консольное приложение с помощью принципов ООП и VS Code

Юнит-тестирование

Освоите важную часть автоматического тестирования — фреймворк pytest. Его используют, чтобы не писать каждый раз код с нуля. Начнёте работать в pytest сначала с самыми простыми тестами — юнит-тестами. Потом узнаете, как в pytest тестировать веб.

Git
Консоль
Pytest
Юнит-тесты
Консоль

Командная строка: начало работы. Подключение к удалённому серверу. Как переходить по каталогам. Как управлять файлами и папками. Как создавать и удалять файлы. Как копировать и перемещать файлы. Сокращённые команды. Работа с текстовыми файлами. История и полезные команды. Фильтрация содержимого файлов. Как быстро работать в командной строке.

Git

Что такое Git. Как его установить. Настройка. Создание, отображение, добавление. Игнорирование. Коммит. Хеш в Git. История коммитов. Переименование и удаление. Ветвление. Конфликты. GitHub. Персональный токен. Репозиторий в GitHub. Клонировать репозиторий: https‑ссылка и ssh‑ключ. Запушить изменения. Pull Request. Правки и Pull Request.

Основы юнит-тестов и pytest

Фреймворк pytest. Что такое юнит‑тесты. Пирамида тестирования. Базовые правила тестов. Как называть юнит‑тесты. Как установить pytest. Структура теста в pytest.

Ассерты

Что такое assert. Базовые assert. Как покрыть тестами метод. Как покрыть тестами класс. Как называть файлы для тестов. Как называть тесты. Как называть все элементы в тестах.

Параметризация

Что такое параметризация. Как написать параметризованный тест. Параметризация: практика.

Фикстуры

Фикстуры. Особенности фикстур. Параметры scope и autouse.

Оценка покрытия

Оценка покрытия. Как посчитать покрытие.

Покроете юнит-тестами небольшое консольное приложение и выложите работу в Git

UI-тестирование

Научитесь автоматизировать проверки, которые обычно проводятся вручную через браузер. Для этого изучите Selenium — с его помощью программы с автотестами «нажимают» на кнопки и «заполняют» поля ввода. Примените всё, что узнали о Python, для тестирования веб‑приложений.

Selenium WebDriver
Devtools
UI-тестирование
XPath
Архитектура веб‑приложений

Клиент‑серверная архитектура. Веб‑приложение. URL. Протоколы HTTP и HTTPS. Структура HTTP‑запроса. Структура HTTP‑ответа. Веб‑страница: HTML. HTML: теги и атрибуты. Веб‑страница: CSS. Веб‑страница: JavaScript. DOM.

Devtools

Поиск элементов в Devtools. Работа с разрешениями. Просмотр запросов. Куки.

Введение в UI‑тестирование

Что такое UI‑тесты. Пирамида тестирования. UI‑тесты: преимущества и недостатки.

Selenium: поиск элементов

Что такое Selenium WebDriver. Что такое локатор. Основные теги. Что такое XPath. Поиск по элементу и атрибуту. Узлы. Значение элемента. Список элементов. Усечённый список. Видимые и невидимые элементы. Относительный и абсолютный путь. Вложенные элементы по относительному пути. Сложный поиск. Составные локаторы. Поиск по CSS.

Selenium: базовые методы

Подключение Selenium в VS Code. Открыть и закрыть страницу. Найти элемент. Кликнуть по элементу. Задать ожидания. Заполнить поле ввода. Получить текст элемента. Перейти к элементу. Работа с куками из тестов. Selenium: практика. Структура проекта.

Протестируете UI‑интерфейс сервиса заказа еды Stellar Burgers с помощью Selenium и Devtools, покроете тестами несколько веб‑страниц

Page Object Model

Узнаете, как улучшать автотесты с помощью паттерна проектирования Page Object Model. Он помогает выстраивать правильную структуру тестов, чтобы их было легче читать и поддерживать. Построите отчёты о тестировании с помощью инструмента Allure, который предоставляет наглядную статистику о проверках.

Page Object Model
Allure
Page Object

Что такое Page Object Model. Как задать класс page object. Работа с локаторами. Работа с методами. Как объединять методы в шаг. Методы setup_class() и teardown_class(). POM: практика.

Allure

Отчёты о тестировании. Установка Allure. Allure: декораторы.

Структура проекта

Файл с внешними зависимостями. Структура проекта с POM. Как улучшить организацию проекта.

Напишете тесты для веб-приложения с помощью Page Object Model, построите информативный отчёт о тестировании в Allure

Тестирование API

Узнаете, как автоматизировать тестирование API. Научитесь применять Postman и Swagger для автоматизации, писать несколько видов запросов. Потренируетесь работать с моками и стабами — заглушками, которые имитируют поведение реальных сервисов.

API
HTTP
REST API
JSON
Postman
Swagger
Введение в API

Архитектура приложений. Что такое API. Архитектурные решения — REST. HTTP: структура запросов и ответов. JSON. Тестирование API. Тестирование сервера: Postman. Документация API. Swagger. Авторизация.

Как тестировать API с помощью Python

Зачем автоматизировать тестирование API. Флоу автоматизированного тестирования API. Библиотека Requests. Метод GET. Десериализация. Метод POST. Сериализация. Метод DELETE. Метод PATCH.

Подготовка к автоматизации

Как подготовить тестовый стенд. Как написать тест‑кейс. Как подготовить данные. Как хранить данные.

Моки

Изоляция в тестах. Что такое мок. Как создать мок. Как замокировать вызов. Как проверить вызовы мока. Как замокировать внешний сервис. Моки в UI‑тестах. Моки в API‑тестах.

Протестируете API учебного веб‑приложения

Архитектура

Мало покрыть приложение тестами — нужно позаботиться о том, чтобы процесс тестирования был исправен. Поэтому в этом модуле вы научитесь оценивать, насколько полно функциональность покрыта тестами. Это нужно, чтобы не было проблем при автоматизации.

Архитектура приложений
Флоу работы автоматизатора
Архитектура

Монолитная архитектура. Микросервисная архитектура. Виды межсервисного взаимодействия. Архитектурные паттерны.

Как покрывать тестами разные уровни программы

Сколько тестов нужно на каждый уровень пирамиды. Когда запускают тесты разных уровней. Оценка покрытия по каждому уровню.

Рабочие задачи автоматизатора

Какие задачи решает автоматизатор. Автоматизация новой фичи. Обновление устаревших тестов. Автотесты для новой системы. Практика.

Подготовка к итоговому проекту

Юнит‑тесты: повторение. Тестирование API: повторение. Тестирование веб‑приложения: повторение. Поделись впечатлениями о проекте.

Подытожите знания и выполните задания на повторение юнит‑тестов, тестирования API и веб‑приложений

Итоговый проект

Это проект, который объединит весь изученный материал. Вам предстоит покрыть тестами веб-приложение, API и написать юнит‑тесты на отдельную функциональность.

Основы работы с базами данных — дополнительный модуль

Это дополнительный модуль, в котором вы узнаете, как устроены базы данных, напишете SQL‑запросы, научитесь агрегировать данные и связывать несколько таблиц. Также узнаете, как группировать и сортировать данные в таблицах.

SQL-запросы
Тестирование баз данных
Базы данных

Тестирование БД. Реляционные БД. SQL‑запросы. Срезы данных в SQL. Агрегирующие функции. Изменение типов. Группировка данных. Сортировка данных. БД и консоль. Изменение данных: INSERT, UPDATE, DELETE. Снятие дампов. Тест: основы баз данных.

Вебинары для разбора сложных тем, сессии Q&A
Расширенный курс «Автоматизатор тестирования на Python»

У этого курса есть расширенный формат: стоит дороже, но включает в себя больше тем и проектов.

Дополнительные темы
Дополнительные проекты
Индивидуальные консультации
Ещё 2 темы

CI/CD: развёртывание, настройка сценариев тестов и их запуск. Docker: как создавать образы и работать с ними.

Ещё 3 проекта

По всем дополнительным темам, чтобы усилить портфолио.

8 индивидуальных консультаций

По темам курса или техническому собеседованию.

Больше навыков, которые помогут профессионально расти