Проходил 15 февраля в 20:00

Открытый вебинар
Автоматизатор в тестировании: Селекторы CSS и их применение

Открытый вебинар онлайн

На уроке слушатели познакомятся с данным видом селекторов, научатся применять данный вид селекторов для поиска нужных элементов на странице, узнают о дополнительных возможностях CSS селекторов. Данный вид селекторов очень часто используется автоматизатором для указания на элемент.

Запись

О курсе

Автоматизатор в тестировании
38 000 ₽
Начало в августе
Программа курса нацелена на подготовку специалиста по автоматизированному тестированию, владеющего инструментами для создания, масштабирования и запуска автоматических тестов с использованием самых современных технологий и фреймворков. В процессе обучения будут получены специализированные знания, необходимые для написания автоматических тестов REST и UI приложений. Слушатель познакомится с инструментом WebDriver, научится использовать его API для создания автоматических тестов и обращение через API к элементам ...
Программа курса
Модуль 1
Модуль 2
Модуль 3
Модуль 4
Модуль 5
Модуль 6
Автоматизация UI
Пирамида автоматического тестирования.
Автоматические тесты на разных уровнях. Стоимость автоматических тестов. Что должен делать автоматизатор?
Участники смогут: понять структуру автоматических тестов на проекте, правильно применять данную структуру в проектах.
Webdriver
Как работает WebDriver. Аналоги WebDriver. Основные методы. Первый тест.
Участники смогут: познакомиться с Webdriver, узнать об аналогах. Ознакомиться, как работают методы класса WebDriver.
Домашние задания: 1
ДЗ
Написать первый тест, позволяющий нажимать на кнопку Find Flights в приложении BlazeDemo.com. Сценарий:
1. Открыть страницу BlazeDemo.com
2. Нажать на кнопку FindFlights
Ожидаемый результат: открылась страница с результатами поиска
Знакомство с технологиями: TestNG, JUnit, XPath, CSS
Все, что необходимо для создания автоматических тестов.
Участники смогут: разобраться в первом тесте со всеми необходимыми технологиями.
WebDriver: Настройка
Поддерживаемые браузеры.
Участники смогут: настраивать под свои цели Webdriver и пользоваться всеми преимуществами этого инструмента.
Домашние задания: 1
ДЗ
Рефакторинг Первой самостоятельной работы. Открыть сайт blazedemo.com и совершить покупку билета по любому направлению.

Проверки, которые необходимо реализовать:
1) На странице результатов поиска показаны рейсы из/в город, которые были выбраны
2) На странице заполнения данных пассажира необходимо проверить
а. номер выбранного рейса, название авиакомпании, цена из результатов поиска рейса
б. конечную цену(Total price) которая считается по формуле Total price= Price + Arbitrary Fee and Taxes
3) Заполнить любыми данными поля
4) Покупка билета завершена(есть ID, Status, Amount , последние 4 цифры введенной карты и expiration date карты)

Также необходимо:
1. Добавить @After и @Before в тест
2. Установить implicit wait
3. Добавить Expected Conditions в тех местах, где они нужны

Необходимо использовать ТОЛЬКО xpath и/или css селекторы.
Сдача задания архивом или ссылкой на github
Git, Maven, Java 8 - основы для быстрого создания и масштабирования автоматических тестов
Участники смогут: пользоваться технологиями Git, Maven, Java 8 для быстрого создания и масштабироваия автоматических тестов.
Шаблоны проектирования
Page Оbject - паттерн или антипаттерн? Шаблоны языка программирования Java. Page Object Recorder.
Участники смогут: узнать о шаблонах проектирования автоматических тестов и шаблонах проектирования языка программирования Java.
Домашние задания: 1
ДЗ
Page Object. Рефакторинг домашнего задания:


1. Воспользоваться двумя паттернами на выбор (например, Page Object и Singleton)

2. Добавить maven surefire plugin и добавить тест в suite TestNG (осуществить запуск теста командой mvn test)
3. Проект должен находиться на GitHub/BitBucket
4*(не обязательное):
- Добавить библиотеку lombok к проекту,
- воспользоваться фильтрацией из JDK 8,
- добавить Profiles к maven,
- добавить дополнительный TestNG suite и запускать suite командой mvn test -Dsuite=suite_name
Webdriver API
Элемент и работа с элементом
Что умеет делать WebDriver API с элементом на странице.
Участники смогут: познакомиться с основными функциями WebDriver API. Смогут научиться делать Drag'n'Drop с элементом.
Свойства элементов. Что можно узнать об элементе
Участники смогут: проверить, подкрашен ли элемент при наведении мыши на элементе.
Домашние задания: 1
ДЗ
Работа со свойствами элементов. Создать автоматический тест, который проверяет размер элемента и изменения при наведении на него
Варианты выполнения домашней работы на 2х сайтах(СДЕЛАТЬ ТОЛЬКО 1!)
1. Сайт: blazedemo.com/login
Описать новый Page Object на страницу Login(если не реализован)
Навести указатель мыши на кнопку login
- Проверить, что размер кнопки не поменялся
- Проверить, что цвет кнопки в наведенном состоянии - rgba(37, 121, 169, 1)

ИЛИ

2. Сайт: automationpractice.com
Описать новый Page Object на страницу
Навести указатель мыши на кнопку WOMEN
- Проверить, что размер кнопки не поменялся
- Проверить, что цвет кнопки в наведенном состоянии - rgba(51, 51, 51, 1)
Ожидания. Глубокое погружение. WebDriverWait. Explicit/implicit waits. Expected Conditions.
Участники смогут: правильно работать с ожиданиями элемента на странице.
Работа с браузерами
Как запустить тесты на разных браузерах. Cookies. Proxy.
Участники познакомятся с браузерами и смогут запускать тесты на разных браузерах разных версий.
Домашние задания: 1
ДЗ
Добавить запуск теста через Internet Explorer/Edge/Safari. Создать автоматический тест по следующему сценарию:
1. Открыть сайт http://automationpractice.com/index.php
2. Навести указатель мыши на Women
3. Дождаться появление меню c помощью ExpectedConditions
4. Выбрать в меню T-Shirts
5. Проверить, что результаты появились на странице

Задание нужно сделать на любом из четырех браузеров на выбор:
InternetExplorer,
Edge,
Opera,
Safari

* Дополнительное задание:
Сделать параметр запуска headless, по которому Google Chrome запускается в headless режиме
Рекомендации:
Применить паттерн PageObject, вынести Menu в отдельный компонент
Selenium Grid. Как быстро распараллелить тесты
Участники научатся использовать Selenium Grid из коробки для распараллеливания тестов.
Фреймворки
Behaviour Driven Development
Когда используется BDD. Cucumber. Демо.
Участники познакомятся с реализацией BDD непосредственно в автоматических тестах.
Домашние задания: 1
ДЗ
Behavior Driven Development. Домашнее задание:
1. Установить Cucumber как новый проект,
2. Написать два любых сценария (features) в новом проекте и реализовать их,
3. Запустить Selenium Grid на локальной машине с 1 node,
4. Запустить сценарии с использованием mvn test -Dbrowser=remotewebdriver.

Дополнительное задание:
*Внедрить Cucumber в созданный ранее проект и реализовать feature для определения результатов поиска T-shirts предыдущего домашнего задания.
Serenity
Для чего нужен, преимущества. Интеграция с BDD. Демо.
Участники увидят преимущество первого фреймворка над созданием собственного решения.
Домашние задания: 1
ДЗ
Serenity + Cucumber. Написать Feature для реализации поиска в поисковой системе Спутник

Создать сценарий поиска любого запроса в Спутник
Убедиться, что результаты поиска присутствуют на странице.

Реализовать с помощью Serenity в связке с Cucumber.
Selenide. Часть 1
Знакомство, применение. Применение прямо из коробки. Демо.
Участники познакомятся с Selenide. Узнают преимущества работы с Selenide.
Selenide. Часть 2
PageObject по версии Selenide. Настройка Selenide. Демо проект.
Участники смогут настраивать Selenide под нужды проекта.
Домашние задания: 1
ДЗ
Selenide. Необходимо реализовать тест с использованием Selenide


Кейс:

1. Открыть страницу artlebedev.ru,

2. Перейти на страницу Инвентарь,

3. Выбрать Полезные штуки "Матрица идей",

4. Выполнить поиск любого запроса,


Проверить, что результаты поиска отображаются.



Дополнительные задания:

- Реализовать Test в виде цепочки,

- Использовать ElementsContainer для Меню сайта.
Appium
Необходимость и применение. Сравнение с WebDriver.
Знакомство с Appium. Принципы работы этого инструмента.
JDI
Преимущества JDI над остальными по версии JDI. Когда стоит использовать данный фреймворк. Демо + сравнение.
Знакоство с JDI. Сравнение JDI с уже известными фреймворками. Плюсы и минусы.
Домашние задания: 1
ДЗ
JDI. Реализовать тест на покупку авиабилета с использованием JDI.
Сравнение всех фреймворков
Html Elements, Arachnidium и прочие.
Участники смогут выбрать нужный фреймворк для создания автоматических тестов в проекте с нуля.
29 мая, 20:00 — 21:30
Продвинутый уровень
xPath vs CSS
Функции XPath против простоты CSS. Какой локатор лучше?
Участники сравнят создание селекторов с помощью XPath и CSS.
31 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Написать все элементы Header и Поиска с помощью XPath и CSS.
JUnit 5
Сравнение с TestNG. Применение. Listeners
Участники смогут поучаствовать в вечной битве между Junit и TestNG, узнать все плюсы и минусы данных подходов и найти лучший.
5 июня, 20:00 — 21:30
Логирование
Средства для логирования автотестов. Как можно быстро найти баг в автотесте.
Участники смогут быстро находить баги в автотестах используя логирование сторонними инструментами.
7 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить логирование, запись видео, траффика, снятие скриншотов в свой проект.
Allure 2.0, Report Portal
Отчеты о прохождении тестов. Интеграция в проект.
Участники познакомятся с Allure, Report Portal. Сравнят оба решения.
12 июня, 20:00 — 21:30
Jenkins и Continuous Integration
Работа и настройка Jenkins для прогона автоматических тестов.
Участники познакомятся с Jenkins, смогут настроить Jenkins под свои нужды в проекте.
14 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить свой проект к тестовому Jenkins. Создать Job для запуска теста. Добавить Allure в Jenkins для отчетов (как плагин и интегрировать в проект)
Continuous Delivery. Pipelines
Как можно помочь процессу CI/CD для выкатки приложения.
Участники смогут понять, как автоматические тесты лучше всего помогают в Continuous Delivery, что такое Continuous Delivery.
19 июня, 20:00 — 21:30
Многопоточные тесты. Работа с ThreadLocal, synchronized
Неочевидные проблемы работы с многопоточностью.
Использование многопоточности для параллельного запуска тестов. Подводные камни.
21 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить synchronized метод, ThreadLocal переменные в проект. Протестировать многопоточный запуск тестов и обращение к переменным
Selenoid, Docker как новый виток развития запуска многопоточных тестов
Участники смогут настраивать Selenoid для запуска тестов в параллельном режиме на разных браузерах.
26 июня, 20:00 — 21:30
Автоматические тесты при тестировании безопасности Web приложения
Участники смогут использовать DataProvider и писать тесты на поиск уязвимостей Web-приложений.
28 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Добавить DataProvider к проекту и написать тест на поиск XSS уязвимостей приложения.
Внедрение автоматизации в QA отделе
Интеграция автоматизации в R&D Team. Оценка трудозатрат.
Участники узнают про интеграцию автоматизации в проект, как в начальной стадии проекта, так и в середине проекта.
3 июля, 20:00 — 21:30
Интеграционные тесты
Введение в интеграционное тестирование
Какие тесты пишут автоматизаторы. Stubs.
Участники узнают про интеграционное тестирование, смогут понять, в какой части интеграционных тестов автоматизаторы могут помочь.
5 июля, 20:00 — 21:30
REST API
HttpClient для отправки и получении запросов. Hamcrest для валидации.
Участники узнают, как отправлять запросы и получать ответы. Познакомятся с Hamcrest для валидации ответов.
10 июля, 20:00 — 21:30
Rest-assured, UniRest для интеграционного тестирования
Участники познакомятся с Rest Assured, научатся быстро писать интеграционные тесты в проекте.
12 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создать два теста с использованием Rest-Assured фреймворка.
Создание интеграционных тестов и UI тестов
Как можно объединить возможности интеграционного и UI тестирования в автоматизации.
Участники смогут решать задачи создания UI тестов на основе проверок REST API.
17 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создать тест, отправляющий запрос на REST и проверяющий соответствие данных в UI.
Проект
Проект. Написать автоматические тесты в проекте. Разделение на команды. Работа в одном репозитории.