День открытых дверей по курсу «Python QA Engineer» 18.03.2019 в 20:00 | OTUS

Курсы

Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65
Проходил 18 марта 2019 года в 20:00

День открытых дверей
Всё о курсе «Автоматизация веб-тестирования»

День открытых дверей онлайн

День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Преподаватель
Михаил Самойлов

Запись

О курсе

Python QA Engineer
50 000 ₽
4 месяца
Начало 31 марта
Курс позволит узнать, как решаются задачи автоматизации тестирования на реальных проектах с использованием языка Python. На первый план мы ставим понимание принципов построения и решения задач, а не изучение конкретного инструмента. Освоив данный курс, вы получите навыки решения основных задач в области автоматизации тестирования веб-приложений. Это комплексная программа подготовки автоматизатора в тестировании, где вы научитесь уверенно решать задачи в тестировании …
Программа курса
Модуль 1
Введение в автоматизацию тестирования
Модуль 2
Тестирование UI
Модуль 3
Работа с бекендом
Модуль 4
Работа с бэкендом
Модуль 5
Практики DevOps
Модуль 6
Другие виды тестирования
Модуль 7
Проектная работа
Введение в автоматизацию тестирования
В данном модуле будут рассмотрены теоретические аспекты автоматизации тестирования, студенты изучат работу с github для работы над домашними заданиями, узнают как тестировать api, как работать с тестовыми данными и погрузятся в разработку на Python
Введение в разработку и тестирование
Изучить виды, цели, инструменты и инфраструктуру для автоматизированного тестирования.
31 марта, 20:00 — 21:30
Домашние задания: 1
ДЗ
Подготовка рабочего окружения, пирамида автоматического тестирования . *Подготовка рабочего окружения для разработки автоматических тестов.
**Описать пирамиду автоматического тестирования своего текущего проекта.
Введение в Pytest
Познакомить студентов с фреймворком для запуска тестов Pytest.
3 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Написать первый пул тестов. Написать по 5 авто-тестов на на методы каждой из структур данных в Python:
1) List
2) Set
3) Dictionary
4) String

Как минимум один тест для каждой структуры должен быть параметризован.
Для тестов на каждую структуру данных создать отдельный файл.

За основу взять методы которые есть у структур данных: https://docs.python.org/3.6/tutorial/datastructures.html#tuples-and-sequences
Работа с тестовыми данными
студент после занятия сможет работать с любыми типами данных, научится использовать менеджеры контекста
7 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с тестовыми данными. 1. Скачайте приложенные к занятию файлы форматов users.json и books.csv
2. Напишите с помощью контекстных менеджеров скрипт, которых из двух файлов будет читать данные и на их основании создаст json файл со структурой из файла example.json
Тестирование API
Научиться тестировать REST API-сервисы.
10 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Тестирование API. Тестирование каждого api оформить в отдельном тестовом модуле.

1. Тестирование REST сервиса 1
Написать минимум 5 тестов для REST API сервиса: https://dog.ceo/dog-api/.
Как минимум 2 из 5 должны использовать параметризацию.
Документация к API есть на сайте.
Тесты должны успешно проходить.

2. Тестирование REST сервиса 2
Написать минимум 5 тестов для REST API сервиса: https://www.openbrewerydb.org/.
Как минимум 2 из 5 должны использовать параметризацию.
Документация к API есть на сайте.
Тесты должны успешно проходить.

3. Тестирование REST сервиса 3.
Написать минимум 5 тестов для REST API сервиса: https://jsonplaceholder.typicode.com/.
Как минимум 2 из 5 должны использовать параметризацию.
Документация к API есть на сайте.
Тесты должны успешно проходить.

4. Реализуйте в отдельном модуле (файле) тестовую функцию которая будет принимать 2 параетра:
url - должно быть значение по умолчанию https://ya.ru (будем надеяться яндекс выдержит!)
status_code - значение по уполчанию 200
Параметры должны быть реализованы через pytest.addoption.
Можно положить фиктуру и тестовую фунцию в один файл.
Основная задача чтобы ваш тест проверял что по переданному урлу статус ответа тот который передали, т.е. по адресу https://ya.ru/sfhfhfhfhfhfhfhfh должен быть валидным ответ 404

пример запуска pytest test_module.py --url=https://mail.ru --status_code=200

DDT в тестировании API
Изучить подходы Data Driven Testing. Научиться выбирать правильный формат представления данных.
14 апреля, 20:00 — 21:30
Python I
ооп в python
17 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализуем ООП на практике. Создать класс геометрической фигуры.

Реализовать на его основе классы фигур Треугольник, Прямоугольник, Квадрат, Круг.

1 Часть.

Фигура должна иметь атрибуты:
name - название фигуры,
area - выводить площадь,
angles - выводить количество углов
perimeter - выводить периметр (сумму длин сторон, длину окружности)

Фигура должна реализовать метод add_square() который должен принимать другую фигуру и выводить сумму площадей этих фигур. Если передана не геометрическая фигура, то нужно выдавать ошибку и сообщать что передан неправильный класс.

2. Часть.

Написать тесты с использованием pytest на эти классы.
По одному тесту на каждый метод каждой фигуры. Т.е. будет четыре тестовых модуля по 5 тестов на каждый. Можно написать и больше. :)

Задача: Потренировать объектно-ориентированное мышление, и написание тестов на собственный код.
Python II
погружение в Python
21 апреля, 20:00 — 21:30
Тестирование UI
В данном модуле будут разобраны все основные аспекты работы Selenium WebDriver, студенты научатся запускать тесты параллельно, познакомятся с удаленным запуском тестов
Основы Selenium
Изучить минимальный набор знаний и навыков для работы с Selenium.
24 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настройка окружения, первый тест. (*)
1. Установить OpenCart по инструкции
2. Настроить selenium для запуска тестов

(**)
1. Написать фикстуру для запуска трех разных браузеров (ie, firefox, chrome) в полноэкранном режиме с опцией headless. Выбор браузера должен осуществляться путем передачи аргумента командной строки pytest. По завершению работы тестов должно осуществляться закрытие браузера.
2. Добавить опцию командной строки, которая указывает базовый URL opencart.
3. Написать тест, который открывает основную страницу opencart (http://<ip_or_fqdn>/opencart/) и проверяет, что мы находимся именно на странице приложения opencart.
Поиск и действия с элементами
научить искать элементы с помощью Selenium и проводить с ними простые действия
28 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Поиск элементов на странице.. Найти элементы на странице используя различные виды локаторов.
Ожидание элементов
Научиться работать с ожиданиями элементов. Изучить работую с исключениями в Python.
1 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Ожидание элементов.. Нажатие кнопок, заполнение и очистка текстовых полей.
Работа с элементами
Научиться работать с элементами. Изучение основ ООП в Python.
5 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с элементами.. Работа с текстом и другими атрибутами элемента веб страницы.
Действия с элементами
Научиться работать с объектом WebElement и изучить основы ООП в Python.
8 мая, 20:00 — 21:30
Шаблон проектирования PageObject
Изучение паттерна PageObject.
12 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
PageObject.. Пишем тесты в паттерне PageObject.
Работа с окнами
Научиться работать с окнами.
15 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Написать тест создания товара с добавлением картинок. 1) Добавить 3 картинки к товару
2) Выполнять ДЗ на демо по адресу
http://demo23.opencart.pro/admin/
юзер demo пароль demo
3) /admin/index.php?route=catalog/download/add&token=oESV9zO9k5pKb3vpYTJlFt1OtrJqfGxY
Протоколирование и отчетность
Научиться логировать действия Selenium.
19 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Протоколирование. Настроить протоколирование проекта
Удаленный запуск Selenium
Научиться запускать Selenium удаленно.
22 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Постройте небольшой грид, научитесь использовать облачный грид. 1) Установите виртуальную машину, внутри которой работает Windows/Linux, и создайте грид, который состоит из диспетчера, работающего на вашей основной машине, и двух узлов -- один тоже на основной машине, а другой внутри виртуальной машины.

Настройте узлы так, чтобы в виртуальной машине был доступен браузер Firefox/Chrome, а на основной машине, наоборот, он был недоступен.

Попробуйте запустить какие-нибудь тесты удалённо на этом гриде, указывая разные браузеры, и убедитесь, что Firefox/Chrome, действительно запускается внутри виртуальной машины, а другие браузеры, наоборот, на вашей основной машине.

Можно использовать любую систему виртуализации, но если у вас нет предпочтений -- берите https://www.virtualbox.org/

Готовые образы Windows для разных систем виртуализации можно найти здесь: https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

2) Запустить несколько тестов в каком-нибудь облачном сервисе на выбор:

https://www.browserstack.com/
https://www.gridlastic.com/
https://saucelabs.com/
https://testingbot.com/
Работа с бекендом
В этом модуле студенты изучат такие важные аспекты процесса работы автоматизатора в тестировании, как анализ логов веб-приложений, взаимодействие с бекендом, базами данных, и погрузятся в архитектуру линукс.
Pytest-отчёты
Научиться генерировать Pytest-отчёты.
26 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Кастомизированные отчеты pytest..
Allure-отчёты
Изучить Allure для генерации отчётов.
29 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Отчеты Allure. Поддержка отчетов Allure.
Анализ логов веб-серверов
Научить студентов разбираться в логах веб серверов.
2 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Анализ логов веб-сервера. В качестве источника логов взять логи opencart.
1. Написать скрипт анализа access.log для apache или nginx

Требования к реализации
1. Должна быть возможность указать директорию где искать логи или конкретный файл
2. Должна быть возможность выбрать все файлы логов отпарсить или только заданный
3. В случае если файл не может быть обработан, то скрипт должен завершится с ошибкой
4. Для access.log должна собираться следующая информация:
- общее количество выполненных запросов
- количество запросов по типу: GET - 20, POST - 10 и т.п.
- топ 10 IP адресов, с которых были сделаны запросы
- топ 10 самых долгих запросов, должно быть видно метод, url, ip, время запроса
- топ 10 запросов, которые завершились клиентской ошибкой, должно быть видно метод, url, статус код, ip адрес
- топ 10 запросов, которые завершились ошибкой со стороны сервера, должно быть видно метод, url, статус код, ip адрес
5. Собранная статистика должна быть сохранена в json файл
6. Должен быть README файл, который описывает как работает скрипт


Траблшутинг в Linux. Файловая подсистема и работа процессов
Научить студентов диагностировать проблемы в работе файловой подсистемы и работы процессов.
5 июня, 20:00 — 21:30
Траблшутинг в Linux. Диагностика сетевых неисправностей
Студенты научатся диагностировать проблемы на уровне сети.
9 июня, 20:00 — 21:30
Траблшутинг в Linux. Архитектура ОС Linux. Дебаг.
Научить студентов использованию инструментам дебага. Изучить архитектуру Linux.
12 июня, 20:00 — 21:30
Работа с бэкендом
В данном модуле студенты научатся работать с бекендом средствами Python.
Работа с СУБД
Научить студентов работать из Python с СУБД.
16 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Подготовка тестовых данных для автотестов путём создания сущности в БД. Написать коннектор к базе данных OpenCart
Создать любую сущность через БД и написать тест проверки её создания (через селениум)
Работа с сетью I. Протоколы прикладного уровня
Научить студентов работать с сетевыми протоколами прикладного уровня.
19 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с сетью. Протоколы прикладкого уровня. Тесты бэкенд с использованием SSH клиента. 1) Пишем код, который будет осуществлять подключения по SSH и работать с FTP.
2) Добавить тесты, которые используют SSH клиент для реализации следующих сценариев: перезагрузка сервера opencart с последующей проверкой, что opencart доступен, рестарт основных сервисов для opencart с последующей проверкой, что сервис доступен.
Работа с сетью II. Протоколы низкого уровня
Научить работать с сетевыми протоколами низкого уровня, углубить знания в области работы сетей и веб-приложений.
23 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с сетью. Протоколы низкого уровня. Парсинг html страницы средствами python.. 1) Пишем собственный HTTP клиент с использованием библиотеки socket.
2) Необходимо расширить предыдущее домашнее задание по парсингу заголовков HTTP функциональностью парсинга тела ответа.
Работа с ОС Linux с помощью Python
Студенты научатся работать с операционной системой Linux средствами Python.
26 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с ОС Linux с помощью Python.. Тесты, которые работают с сетевой, файловой и системой управления процессами Linux.
Практики DevOps
В данном модуле студенты узнают, как взаимодействуют друг с другом основные практики и инструменты DevOps с инструментами для автоматизации тестирования, научатся встраивать тесты в pipeline процесса разработки, и попрактикуются в построении отчетов с фреймворком Allure
Использование Docker
Научиться работать с Docker и собирать собственные контейнеры.
30 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работа с Docker контейнерами.. Необходимо собрать собственный докер контейнер, в котором будет код тестового фреймворка (последний) из репозитория на github и установлены все необходимые зависимости для старта тестов.
Результат: ссылка на Dockerfile
Устройство Docker.
Изучить основы виртуализации и узнать как реализованы докер контейнеры изнутри.
3 июля, 20:00 — 21:30
Непрерывная интеграция
Изучение основ непрерывной интеграции в контексте тестирования.
7 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Настройка стилистического анализа в Jenkins. Установка Jenkins. Запуск тестов. 1) Настраиваем Jenkins на запуск стилистических анализаторов на проверку кода тестового фреймворка по каждому коммиту.
2) Установить Jenkins на виртуальную машину Ubuntu или в докер контейнер.
3) Создать в дженкинсе пайплайн, который:
a. Разворачивает докер контейнер с последним кодом тестов
b. Запускает тесты
c. Сохраняет отчет о тестах в артифакт джобы
Подготовка тестового окружения
Изучение основ сборки пакетов.
Изучить основные практики подготовки тестового окружения.
10 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сборка wheel тестового фреймворка. Добавить setup.py для тестового фреймворка.
Основы безопасности веб-приложений
Изучение основ безопасности веб-приложений для проведения тестирования безопасности.
14 июля, 20:00 — 21:30
Другие виды тестирования
Студенты познакомятся с BDD-фреймворками на python, научатся писать сценарии в Gherkin-нотации, узнают про тестирование безопасности веб-приложений, написание заглушек и модульное тестирование
Основы Behaviour Drivet Testing. Введение в Robot Framework
Изучение основ BDT и знакомство с Robot Framework.
17 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
BDD. Использование пользовательских сценариев и RobotFramework. 1) Написать сценарии использования в формате BDD(gherkin) для пользовательской части opencart (купить товар и т.д.)
2.1 Настроить работу с RobotFramework
2. 2 Написать тесты для администраторской панели на RobotFramework (выбрать самостоятельно 5 кейсов)
Расширенное использование Robot Framework
Закрепление навыков работы с Robot Framework.
21 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Расширенное использование RobotFramework и расширение библиотек RobotFramework на Python. 1.
0 (*). Подключить библиотеку сохранения результатов тестов DbBot (https://github.com/robotframework/DbBot)
1.1. Подключить к тестам библиотеку DatabaseLibrary
1.2. Написать тест-кейс в RobotFramework создания нового товара в администраторской панели OpenCart
1.3. Сделать в этом же тесте проверку что новый товар существует
1.4. Во втором тест-кейсе удалить товар
1.5. Проверить методом count что количество товаров стало меньше
1.6. Должны быть сделаны скриншоты каждого шага в браузере

2. Создать тестсьюит на RobotFramework по тестированию логина (в админку и в клиентское приложение)
2.1. Создать файл .py с реализацией класса ЛогинАдмин (метод - логин в админ панель)
2.2. Создать файл .py с реализацией класса ЛогинКлиент (метод - логин в клиентскую часть)
2.3. Создать файл mylib.py, агрегирующий (1) и (2) (как в лекции)
2.4. Создать тестсьюит логина использующий библиотеку (3)
2.5. Написать два теста, один - для теста логина в админку, второй - для теста логина клиента
Модульное тестирование.
Научить писать студентов модульные тесты.
24 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Модульное тестирование. Mock Objects.. Пишем модульные тесты в стиле xunit используя MockObjects.
Для домашнего задания с тестированием REST API необходимо замокать запросы к REST сервису и его ответы.
Использование Mock
Изучение подхода Mock в тестировании.
28 июля, 20:00 — 21:30
Нагрузочное тестирование
31 июля, 20:00 — 21:30
Проектная работа
Заключительный месяц курса посвящен разработке проекта. В качестве темы выбирается то, что интересно писать студенту и то, что потенциально можно будет потом включить в свое резюме. Участие в разработке некоего open source продукта тоже может рассматриваться в качестве выпускного проекта. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Выбор темы и организация проектной работы
выбрать и обсудить тему проектной работы;
спланировать работу над проектом;
ознакомиться с регламентом работы над проектом.
4 августа, 20:00 — 21:30
Консультация по проектам и домашним заданиям
получить ответы на вопросы по проекту, ДЗ и по курсу.
7 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
Проект.
Защита проектных работ
защитить проект и получить рекомендации экспертов.
11 августа, 20:00 — 21:30
Подведение итогов курса
узнать, как получить сертификат об окончании курса, как взаимодействовать после окончания курса с OTUS и преподавателями, какие вакансии и позиции есть для выпускников (опционально - в России и за рубежом) и на какие компании стоит обратить внимание.
14 августа, 20:00 — 21:30

Преподаватель

Михаил Самойлов
Ведущий автоматизатор в тестировании в Group-IB
В области информационных технологий около 10 лет. Начинал сетевым инженером и с проектов в области сетевой безопасности, работал в таких компаниях, как Orange Business Services, ИнфоТеКС, РТКОММ, «Ростелеком».

В 2014 году начал работать в компании «Мирантис» в области автоматизации тестирования. В «Мирантисе» был в команде Fuel, в которой занимался написанием API, CLI и системных автотестов на Python.

После закрытия московского офиса «Мирантиса» работал в компаниях Postgres Professional и ASP Labs, в которых занимался созданием инфраструктуры тестирования с нуля. В ASP Labs руководил отделом разработки.

В 2011 году закончил МГИУ, специалист по защите информации.

«Люблю сложные задачи, которые связаны с сетями, сетевой безопасностью, разработкой и тестированием на Python под Linux. Изучаю C/C++ в части разработки под Linux».

F.A.Q.: Наиболее часто задаваемые вопросы:

Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару.
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы.