КУРС ПО ПОСТРОЕНИЮ ПРОЦЕССОВ АВТОМАТИЗАЦИИ ДЛЯ ЛЮБОГО WEB-ПРИЛОЖЕНИЯ НА PYTHON С НУЛЯ
После курса ты сможешь претендовать на должность QA Automation Engineer и значительно увеличить свою заработную плату.
НЕМНОГО ОБО МНЕ
  • > 6 лет в IT

    Около 2-х лет занимался разработкой веб-приложений (посмотрев курс на ютубе в 11-ом классе :D).


    Прошел путь от Junior до Team lead команды тестирования в американской компании.

  • > 4 лет в автоматизации

    Выступал с презентацией по теме автоматизации в Америке в компании FreeConferenceCall.


    Выстроил процесс автоматизации с нуля, более чем для 9 американских проектов.


    Разработал несколько авторских библиотек для упрощения автоматизации тестирования.


    Выстроил собственный подход к

    автоматизации.

  • Обучил > 240 студентов

    Многие из которых нашли работу в IT-сфере.
Средняя цена ~$1200 (цена зависит от выбранного тарифа, о тарифах узнаете позже + будет вебинар)

Возможна рассрочка!

Длительность курса: ~5,5 месяцев
Старт: ~1-10 августа 2023 года
Предварительная программа курса
Люблю делать всякие бонусные штуки, в программе их нет
Модуль 1 - Python (Минимум для QA Automation)
9 Занятий
Занятие 1 - Введение
🎮 Practice | Практическое занятие
  • Установка Python
  • Установка IDE
  • Создание первого проекта
  • Пишем программу "Hello QA-PROKA4"
Занятие 2 - Переменные и типы данных
🎮 Practice | Практическое занятие
  • Что такое и для чего нужны переменные в автмоматизации
  • Типы данных в Python
  • Преобразование типов
  • Арифметические операции
  • Операции сравнения
Занятие 3 - Строки
🎮 Practice | Практическое занятие
  • Создание строки
  • Доступ к символам
  • Срезы
  • Получение длины строки
  • Конкатинация строк
  • F-строки
  • Базовые методы строк
  • Проверка на содержимое строки
Занятие 4 - Списки
🎮 Practice | Практическое занятие
  • Что такое и для чего нужны списки в автоматизации
  • Создание списка
  • Получение элементов списка
  • Добавление элементов в список
  • Удаление элементов из списка
  • Получение длины списка
  • Срезы
Занятие 5 - Условные операторы
🎮 Practice | Практическое занятие
  • Логические операции
  • Оператор if
  • Оператор else
  • Оператор elif
Занятие 6 - Словари
🎮 Practice | Практическое занятие
  • Что такое и для чего нужны словари в автоматизации
  • Создание словаря
  • Доступ к элементам словаря по ключу
  • Обновление элементов словаря
  • Удаление элементов словаря
  • Проверка на наличие ключей
  • Получение ключей и значений
  • Итерация по словарю
Занятие 7 - Циклы
🎮 Practice | Практическое занятие
  • Что такое и для чего нужны циклы в автоматизации
  • Цикл for
  • Цикл while
  • Остановка цикла
Занятие 8 - Функции
🎮 Practice | Практическое занятие
  • Что такое и для чего нужны функции в автоматизации
  • Создание функций
  • Аргументы функции
  • Получение данных из функции
  • Декораторы
Занятие 9 - Обьектно ориентированное программирование
🎮 Practice | Практическое занятие
  • Что такое ООП и его концепция
  • Что такое class
  • Поля, атрибуты, указатель и методы класса
  • Что такое обьект
  • Инициализация обьекта класса
  • Наследие и переопределение методов
Модуль 2 - Git (Фундамент)
2 Занятия
Занятие 1 - Введение в Git
🎮 Practice | Практическое занятие
  • Что такое Git
  • Создание первого репозитория
  • Создание своей ветки
  • Команды add, commit, push, fetch, pull
Занятие 2 - Работа с реальным флоу
🎮 Practice | Практическое занятие
  • Пул-реквесты
  • Перебазирование ветки
  • Решение конфликтов
  • Работа с Sublime Merge
Модуль 3 - Selenium
17 Занятий
Занятие 1 - Введение в Selenium
🎮 Practice | Практическое занятие
  • Что такое Selenium и как он работает
  • Установка Selenium и зависимостей
  • Инициаилизация Chrome и Firefox драйверов
  • Использование Selenium Manager
Занятие 2 - Навигация браузера. Поиск элементов (Часть 1)
🎮 Practice | Практическое занятие
  • Управление навигацией браузера
  • Заставляем код поспать
  • Что такое веб-элемент
  • Поиск веб-элементов и его особенности
  • Знакомство с обьектом WebElement
  • Ваш первый клик
Занятие 3 - Получение данных из браузера
🎮 Practice | Практическое занятие
  • Получение URL-страницы
  • Получение title-страницы
  • Валидация данных через assert
  • Получение исходного кода страницы
Занятие 4 - Поиск элементов (Часть 2). Xpath (Часть 1)
🎮 Practice | Практическое занятие
  • Вспоминаем доступ к элементам списка
  • Поиск множества элементов и получение нужного
  • Что такое Xpath
  • Глобальный поиск и вложенность
  • Поиск по порядковому номеру
  • Поиск по параметру text()
  • Поиск по содержимому
  • Поиск по атрибутам
  • Инспектирование исчезающих элементов
Занятие 5 - Работа с полями ввода. Получение атрибутов элемента.
🎮 Practice | Практическое занятие
  • Клик на элементы
  • Ввод данных в поля ввода
  • Очистка полей ввода
  • Получение текста из полей ввода и атрибутов у других элементов
Занятие 6 - Опции браузера. Загрузка и скачивание файлов.
🎮 Practice | Практическое занятие
  • Что такое опции браузера
  • Работа с обьектом опций
  • Основные опции браузера
  • Стратегия загрузки страницы
  • Скачивание файлов + Нюанс
  • Загрузка файлов
  • Нюансы
Занятие 7 - Ожидания
🎮 Practice | Практическое занятие
  • Неявные ожидания
  • Явные ожидания
Занятие 8 - Перестаем быть роботом. Работа с alerts
🎮 Practice | Практическое занятие
  • Отключение режима WebDriver
  • Работа с User-agent
  • Работа с alerts
Занятие 9 - Работа с Cookies
🎮 Practice | Практическое занятие
  • Что такое cookies
  • Получение cookies
  • Добавление cookies
  • Замена cookies
  • Сохранение cookies в файл
  • Чтение cookies из файла
  • Авторизация через cookies
Занятие 10 - Радио, чек-боксы, выпадающие списки и работа с клавиатурой
🎮 Practice | Практическое занятие
  • Работа с чек-боксами + Нюансы
  • Работа с radio-кнопками
  • Работа с клавиатурой
  • Работа с dropdown/select
  • Работа с мультиселектом
Занятие 11 - Практика
🎮 Practice | Практическое занятие
  • Обход Basic Auth
  • Способы обхода Captcha
  • Работа с формами
Занятие 12 - Окна, вкладки и iframes
🎮 Practice | Практическое занятие
  • Работа с окнами
  • Дескриптор
  • Работа с вкладками
  • Переключение между iframes
Занятие 13 - Практика
🎮 Practice | Практическое занятие
  • Работа с календарями
  • Работа с таблицами
Занятие 14 - Actions API (Часть 1)
🎮 Practice | Практическое занятие
  • Actions chains | Цепочка действий
  • Right click | Правый клик мышкой
  • Double click | Двойной клик мышкой
  • Click and hold | Клик с удержанием
  • Hover | Наведение на элемент
  • Scroll to element | Скролл к элементу
  • Drag and Drop | Перетаскивание элементов
  • Copy and Past | Копирование и вставка
Занятие 15 - Actions API (Часть 2). Xpath (Часть 2)
🎮 Practice | Практическое занятие
  • Pause | Ожидание
  • Release | Реализация мыши
  • Work with slides | Работа с ползунками
Занятие 16 - Самостоятельная работа
🎮 Practice | Практическое занятие
Модуль 4 - Pytest
7 Занятий
Занятие 1 - Введение в Pytest
🎮 Practice | Практическое занятие
  • Что такое pytest
  • Уставновка pytest
  • Правила создания тестов
  • Создание тестовых классов (наборов тестов)
  • Создание тестовых методов (тестов)
  • Первый запуск тестов
Занятие 2 - Пред- и постусловия | Базовые параметры запуска
🎮 Practice | Практическое занятие
  • Пред-условие в тестах
  • Пост-условие в тестах
  • Базовые параметры запуска
  • Запуск тестов по названию
  • Дебаг тестов через pytest
Занятие 3 - Перезапуск, остановка и маркировка тестов
🎮 Practice | Практическое занятие
  • Перезапуск упавших тестов после тестового прогона
  • Перезапуск упавших тестов сразу после их падения
  • Остановка тестового прогона после падения N тестов
  • Маркировка тестов
  • Запуск тестов с использованием маркировки
  • Сброс тестов с логированием причины
  • Ограничение времени выполнения теста
Занятие 4 - Зависимые тесты, параметризация и паралеллизация.
🎮 Practice | Практическое занятие
  • Параметризация тестов - запуск одного и того же теста с разными входными данными
  • Работа с зависимыми тестами
  • Параллельный запуск тестов в несколько потоков
Занятие 5 - Фикстуры. Часть 1
🎮 Practice | Практическое занятие
  • Файл conftest.py
  • Что такое фикстура
  • Использование фикстур через return и ее передача в тест в качестве аргумента
  • Использование фикстур через request.cls и ее вызов с помощью маркера (декоратора)
Занятие 6 - Фикстуры. Часть 2
🎮 Practice | Практическое занятие
  • Авто-использование фикстур
  • Пред- и постусловия в фикстурах (yield)
  • Область видимости фикстур
  • Конфигурационный файл - pytest.ini
Занятие 7 - Самостоятельная работа
🎮 Practice | Практическое занятие
Модуль 5 -Allure
2 Занятия
Занятие 1 - Allure
🎮 Practice | Практическое занятие
  • Что такое Allure
  • Установка Allure
  • Маркировка тестов по сьютам
  • Марикровка тестов по фичам
  • Маркировка шагов
  • Генерация отчета
  • Приложение файлов к отчету
Занятие 2 - Практика
🎮 Practice | Практическое занятие
Модуль 6 - Architecture
6 Занятий
Занятие 1 - Page Object Model (POM). Часть 1
🎮 Practice | Практическое занятие
  • Что такое паттерны и зачем они нужны
  • Знакомство с Page Object
  • Основные сущности
  • Цепочка запуска
  • Первый тест в POM
  • Декларативный и императивный подходы
Занятие 2 - Page Object Model (POM). Часть 2
🎮 Practice | Практическое занятие
  • Работа с данными в POM
  • Мультистраничные тесты
  • Изоляция проектов
  • Настройка переменных окружения для управления данными
  • Allure в POM
  • Features и suites подходы
Самостоятельная работа по Page Object Model
🎮 Practice | Практическое занятие
Занятие 3 - Page Components. Часть 1
🎮 Practice | Практическое занятие
  • Особенности использования page component
  • Выделение компонентов страницы
  • Пишем тесты с компонентным подходом
Занятие 4 - Page Components. Часть 2
🎮 Practice | Практическое занятие
  • Построение архитектуры проекта под Page Components
  • Что такое фабрики
  • Создание и использование фабрик
Самостоятельная работа по Page Components
🎮 Practice | Практическое занятие
Модуль 7 - Docker
6 Занятий
Занятие 1 - Введение в Docker
🎮 Practice | Практическое занятие
  • Что такое Docker
  • Основные сущности
  • Хранилище образов DockerHub и Registry
  • Docker в автоматизации тестирования
  • Установка Docker
Занятие 2 - Работа с образами
🎮 Practice | Практическое занятие
  • Авторизация в хранилище образов
  • Этапы сборки образа
  • Инструкции Dockerfile и сборка первого образа
  • Первый запуск Python-программы в контейнере
Занятие 3 - Работа с контейнерами
🎮 Practice | Практическое занятие
  • Получение информации о контейнерах и их удаление
  • Запуск контейнера в интерактивном режиме
  • Самоудаление контейнера после остановки
  • Запуск контейнера в фоне
  • Открытие запущенного контейнера
  • Просмотр логов запущенного контейнера
Занятие 4 - Сборка образа для автоматизации
🎮 Practice | Практическое занятие
  • Собираем образ для UI и API-тестов
  • Подготовка тестов к запуску в контейнере
  • Запуск первого теста в контейнере
  • Переменные окружения в контейнере
  • Получение allure-отчетов из контейнера
Занятие 5 - Работа с docker-compose.yml
🎮 Practice | Практическое занятие
  • Что такое docker-compose.yml
  • Изучение синтаксиса compose-файла
  • Пишем свой первый docker-compose
  • Запуск тестов через docker-compose
  • Оркестрация
  • Интерактивный режим через docker-compose
  • Файл .dockerignore
Занятие 6 - Самостоятельная работа
🎮 Practice | Практическое занятие
Модуль 8 - CI Setup
3 Занятия
Занятие 1 - Введение в CI/CD
🎮 Practice | Практическое занятие
  • Что такое CI/CD
  • Общий принцип всех CI/CD систем
Занятие 2 - GitHub Actions
🎮 Practice | Практическое занятие
  • Базовый синтаксис config.yml и основные сущности
  • Создание достаточного конфига для UI и API-тестов
  • Запуск тестов в GutHub Actions
Занятие 3 - Circle CI
🎮 Practice | Практическое занятие
  • Базовый синтаксис config.yml и основные сущности
  • Создание достаточного конфига для UI и API-тестов
  • Запуск тестов в CircleCI
  • Получение Allure-отчета в артефактах
Занятие 4 - ??? (Пока под вопросом)
🎮 Practice | Практическое занятие
Занятие 5 - ??? (Пока под вопросом)
🎮 Practice | Практическое занятие
ПРЕДЗАПИСЬ НА КУРС
После нажатия кнопки "Записаться " будет страница со ссылкой на телеграмм-канал предзаписи. Добавляйтесь!
Если ты точно знаешь, что идешь на курс (о тарифах курса вы узнаете чуть позже), то можно сразу забронировать место на курсе!
Бронь 1000 рублей