Открытый вебинар «Cелекторы CSS и их применение» 15.02.2018 в 20:00 | OTUS
🍁Осенние скидки в Otus!
-5% с промокодом hellootus на все курсы октября и ноября до 31.10!
Забрать скидку!
Проходил 15 февраля 2018 года в 20:00

Открытый вебинар
Cелекторы CSS и их применение

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

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

Запись

О курсе

Java QA Engineer

В рамках курса вы заглянете под капот популярнейших инструментов автоматизации, чтобы точно знать, что там происходит, и как это можно эффективно использовать. Ключевая цель курса — помочь студентам стать профессионалами, которые смогут самостоятельно принимать технические решения и предвидеть поведение системы. Именно в этом кроется стабильность ваших тестов.

Курс подойдет для:

- Разработчиков автоматизированного тестирования на Java с опытом работы до …

Программа курса
Модуль 1
WebDriver
Модуль 2
Architecture
Модуль 3
BDD
Модуль 4
API Testing
Модуль 5
Параллельное выполнение тестов
Модуль 6
Практики CI/CD
Модуль 7
Проект А
WebDriver
Задача этого модуля — копнуть поглубже в устройство WebDriver'а, понять, как он работает и как сделать работу с ним эффективнее. Мы тщательно изучим основные возможности и рассмотрим нетипичные возможности драйвера. Итогом модуля будет углубленное знание инструмента Selenium.
Главное про автоматизацию тестирования
обозначить уровни автоматизированного тестирования и соответствующие правила;
определить критерии качества автотестов;
проанализировать принципы тестирования;
научиться создавать проект с минимальным набором обязательных атрибутов;
создать проект с минимальным набором обязательных атрибутов.
Настраиваем окружение
объяснить, как выбрать тестовый фреймворк;
создать проект.
Пишем первый тест
настроить логирование, интеграцию с GIT и параметризированный запуск тестов.
Домашние задания: 1
ДЗ
Создать новый maven-проект для автоматизации тестирования и залить его на GitHub. 1 Откройте IDE
2 Создайте новый проект (maven)
3 Настройте для проекта файл .gitignore (https://www.gitignore.io/)
4 В файле pom.xml укажите зависимости для
-- Selenium Java (https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java)
-- WebDriverManager (https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager)
-- jUnit (https://mvnrepository.com/artifact/junit/junit/4.12)
5 создайте репозиторий на github и залейте в master код проекта
6 создайте новую ветку в репозитории и в рамках нее создайте тест, который:
-- с помощью WebDriverManager, настраивает ChromeDriver
-- открывает в браузере Chrome страницу https://otus.ru/
— проверяет title страницы
- логирует шаги теста с помощью log4j
7 сделайте push кода с тестом в новую ветку
8 сделайте pull request в мастер из новой ветки, убедитесь, что не возникло конфликтов и код можно мержить

Домашнее задание принимается в виде ссылки на GitHub репозиторий
Срок сдачи: 48 часов до следующего занятия.

Подглядывать можно сюда: https://habr.com/ru/company/otus/blog/452908/
Использовать owner http://owner.aeonbits.org/docs/usage/
Локаторы
проанализировать все типы локаторов;
научиться строить сложные локаторы;
проанализировать какие возникают ошибки при работе с элементами;
рассмотреть подходы к хранению локаторов.
Ожидания в Selenium. Работа с явными и неявными ожиданиями, сравнение подходов. Знакомство с Expected Conditions
применять явные и неявные ожидания для повышения стабильности тестов и осуществления сложных проверок.
Команды чтения и управления состоянием элементов. Свойства элементов html-страницы, получение специфичных свойств элементов
проанализировать, какие свойства элементов страницы доступны для чтения средствами автоматизации и какие проверки можно на них строить;
объяснить, какие элементы Selenium считает interactable и clickable.
Конфигурация драйвера при старте, desired capabilities, параметры браузеров, работа с cookies
научиться конфигурировать драйвер при старте, настраивать его под специфичные задачи;
научиться задавать настройки, специфичные для конкретного браузера.
Домашние задания: 1
ДЗ
Написать несколько тестов.. Создайте в разных тестах следующие проверки

1) Откройте сайт https://otus.ru :
- перейти во вкладку "Контакты" и проверить адрес: 125167, г. Москва, Нарышкинская аллея., д. 5, стр. 2, тел. +7 499 938-92-02;
- разверните окно браузера на полный экран(не киоск);
- проверьте title страницы.

2) Перейти на сайт теле2 страница https://msk.tele2.ru/shop/number :
- ввести в поле "поиск номера" 97 и начать поиск;
- дождаться появления номеров.

3) Перейдите на сайт https://otus.ru :
- перейдите на F.A.Q, нажмите на вопрос: "Где посмотреть программу интересующего курса?";
- проверьте, что текст соответствует следующему:
"Программу курса в сжатом виде можно увидеть на странице курса после блока с преподавателями.
Подробную программу курса можно скачать кликнув на “Скачать подробную программу курса”.

4) Зайдите на сайт https://otus.ru :
- заполните тестовый почтовый ящик в поле "Подпишитесь на наши новости";
- нажмите кнопку "Подписаться";
- проверьте, что появилось сообщение: "Вы успешно подписались".

Работа с нативными окнами браузера: Alert, Prompt, Confirm, iFrame, Tabs, BasicAuth
поработать с нативными элементами браузера.
Домашние задания: 1
ДЗ
Яндекс маркет. Вариант 1:
- Открыть в Chrome сайт Яндекс.Маркет - "Электроника"-> "Смартфоны"
- Отфильтровать список товаров: Samsung и Xiaomi
- Отсортировать список товаров по цене (от меньшей к большей)
- Добавить первый в списке Samsung
- Проверить, что отобразилась плашка "Товар {имя товара} добавлен к сравнению"
- Добавить первый в списке Xiaomi
- Проверить, что отобразилась плашка "Товар {имя товара} добавлен к сравнению"
- Перейти в раздел Сравнение
- Проверить, что в списке товаров 2 позиции


Вариант 2:
- Задание Вариант2
- Сайт www.220-volt.ru
- Электроэнструменты -> Перфораторы
- Выбрать марки Makita и Зубр
- Отсортировать по цене (min->max)
- Добавить в сравнение первый перфоратор "Зубр" и первый перфоратор "Makita"
- Перейти на страницу сравнения. Убедиться, что в сравнении корректные перфораторы.


Домашнее задание принимается в виде ссылки на GitHub репозиторий
Срок сдачи: 48 часов до следующего занятия.
Upload files, executing JavaScript
объяснить, как решать нестандартные задачи с помощью выполнения JavaScript на странице.
Бонусный урок Вопрос-ответ
Architecture
Задача этого модуля — ознакомиться с лучшими практиками организации кода проекта, чтобы его было легче разрабатывать и поддерживать. Речь будет идти не только о широко известном паттерне PageObject, но и о более фундаментальных подходах к разработке. Участники научатся реализовывать наиболее популярные паттерны проектирования (Singleton, Proxy, Observer, Command и т. д.).
Архитектура проекта
применять паттерны проектирования при разработке проекта (Chain of Command/Chain of Responsibility, Prototype, Singleton, Factory, etc);
писать framework и разделять тесты на различные слои.
Page object, web-driver factory
понять, какие проблемы решают данные паттерны;
реализовывать данные паттерны и использовать на практике.
Домашние задания: 1
ДЗ
Реализуйте автоматический тест, используя Java + Selenium + POM + web-driver factory. Создайте класс WebDriverFactory со статическим методом create();

Метод create() принимает обязательный параметр webDriverName и необязтельный параметр options, а возвращает соответствующий имени вебдрайвер с заданными (если были) options

Примеры использования
WebDriver wd = WebDriverFactory.createNewDriver("chrome");
или
FirefoxOptions options = new FirefoxOptions();
WebDriver wd = WebDriverFactory.createNewDriver("firefox", options);

Шаги теста:
- Открыть https://otus.ru
- Авторизоваться на сайте
- Войти в личный кабинет
- В разделе "О себе" заполнить все поля "Личные данные" и добавить не менее двух контактов
- Нажать сохранить
- Открыть https://otus.ru в "чистом браузере"
- Авторизоваться на сайе
- Войти в личный кабинет
- Проверить, что в разделе "О себе" отображаются указанные ранее данные

Домашнее задание принимается в виде ссылки на GitHub репозиторий
Срок сдачи: 48 часов до следующего занятия.
Page factory, ScreenPlay
использовать паттерны, альтернативные "стандартному" PageObject.
Обзор техонологий Appium, Selenide
проанализировать основные инструменты и вспомогательные библиотеки, которые применяются сегодня в автоматизации;
объяснить для чего они нужны и как работают.
Бонусное занятие. Разбор домашних заданий
разобрать домашних заданий, ошибок и ответы на вопросы
BDD
Задача этого модуля — рассмотреть и научиться применять один из наиболее востребованных на сегодняшний день подходов в автоматизации тестирования. Участники изучат основные инструменты на рынке, научатся внедрять Cucumber в существующий проект.
Dependency Injection. Google Guice, PicoContainer
проанализировать преимущества использования DI в разработке, а также внедрить его в свой проект.
Домашние задания: 1
ДЗ
Домашнее задание по IoC и DI. 1, На примере приложения созданного в обучающем вебинаре (был рассмотрен сервис по продаже автомобилей) создать дополнительные конфигурации для автомобиля.
2, Создать на продажу новые автомобили с новыми конфигурациями и вывести результат создания в консоль.
3, Поработать с конфигурационным классом SpringConfig и с бинами.
4, Создать тест для новой конфигурации с ассертом.

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

Подход BDD
объяснить суть подхода и основные инструменты для написания и имплементации сценариев.
Домашние задания: 1
ДЗ
Подход TDD, BDD.. Создать проект тематики Калькулятор (или другой тематики, на ваш выбор)
Написать нереализованные методы (например: возведение в степень, корень из числа, на ваш выбор)
Написать тесты для этих методов, которые вначале при запуске будут иметь статус failed.
Далее реализовать методы и запустить тесты снова.
Результат: повторно тесты успешно отработают со статусом passed.
Практика по BDD. Ответы на вопросы
написать несколько автотестов, использующих подход BDD;
разобрать типичные кейсы.
Домашние задания: 1
ДЗ
Реализовать BDD подход используя Cucumber Framework. Создать тестовый проект на Cucumber Framework.
Написать несколько сценариев в feature файле для тестирования Web страницы (web ресурс на ваш выбор).
Реализовать методы шагов сценариев.
API Testing
Задача модуля — научиться автоматизировать тестирование API. Модуль рассматривает основы протоколов, наиболее популярные инструменты для ручного и автоматизированного тестирования. В результате участники будут уметь писать API-тесты и расширять существующие UI-тесты.
HTTP. SOAP. Rest. Postman/Newman, curl, SoapUI
рассмотреть особенности протоколов HTTP и SOAP;
использовать инструменты для ручного тестирования API на этих протоколах.
RestAssured
создать автоматизированные тесты API с использованием RestAssured на Java;
внедрить Json Schema Validator.
Домашние задания: 1
ДЗ
Rest-assured. Написать тест кейсы в excel или в комментах к классу:
- создание пользователя
- получение пользователя по имени

Для данных тест кейсов написать автотесты.
Описание API - https://petstore.swagger.io
Contract testing with Spring
автоматизировать API с помощью Spring.
Домашние задания: 1
ДЗ
ДЗ - Contract Testing. Сгенерировать проект на Citrus Framework
Написать тесты для нескольких контрактов (на выбор) с ресурса www.reqres.in
Использование API-helper'ов в UI-тестах
объединить UI- и API-тесты для более эффективной автоматизации тестирования.
Домашние задания: 1
ДЗ
ДЗ API-Helpers. Сгенерировать простой шаблон проекта Spring.
Добавить в проект зависимости для Retrofit.
Создать endpoint helper клиента для вызовов методов API сайта www.reqres.in
Сделайте несколько тестов где проверяется взаимодействие по нескольким контрактам c сайта www.reqres.in
Опишите по несколько assertionns в каждом тесте.
Stubs
разработать "заглушки" на сторонние сервисы для большей изоляции автотестов.
Домашние задания: 1
ДЗ
ДЗ - Stubs, Mocks. Создать тестовый проект на выбор:
- Шаблонный проект spring с подключенной библиотекой wiremock
- Шаблонный проект Citrus Framework (quickstart)

Создать сервис-заглушку для имитации API сайта www.reqres.in

Создать два-три теста по разным контрактам с сайта www.reqres.in.
Запуск теста и работа заглушки должны осуществляться локально (на "машине" пользователя).
Параллельное выполнение тестов
Задача модуля — освоить способы организации параллельного выполнения тестов как одно из важнейших требований к автотестам.
Параллельное выполнение тестов. Selenium Grid. Настройка и запуск
рассмотреть подходы к распараллеливанию тестов;
настроить и использовать базовые инструмент Selenium Grid.
Отчетность: Allure, Report Portal, слушатели (Listeners). Снятие скриншотов.
организовать понятную отчетность по автотестам;
внедрить инструменты для сбора логов тестов, скриншотов приложения.
Домашние задания: 1
ДЗ
Добавить интеграцию c системой отчетности Allure в тестовый проект на Selenium.. Открыть тестовый проект для web на Selenium.
Настроить интеграцию с библиотекой Allure по примеру, показанному в вебинаре.
В тесты добавить передачу скриншота в Allure отчет.

Современные способы распараллеливания. Selenoid
рассмотреть современные подходы к распараллеливанию тестов;
применить Selenoid.
Практики CI/CD
Современный рынок труда часто выдвигает требование к QA-специалистам — умение работать с CI/CD-системами. Задачей модуля является формирование представления о практиках и инструментах, а также научиться внедрять автотесты в процесс поставки продукта.
Что такое CI/CD и зачем он нужен
рассмотреть CI- и CD-процессы;
рассмотреть основные инструменты и ключевые понятия (Server, agents, jobs. Fail fast, Scheduling, WebHooks).
Jenkins
настроить и запустить сервис. интегрировать с git и Docker;
рассмотреть pipeline-подход.
Описание шагов "от выгрузки до отчетов по тестированию". Scheduling, webhooks
создать джобы для прогона автотестов от выгрузки из git до отображения отчета по тестированию;
настроить запуск джобы по расписанию и по событию.
Домашние задания: 1
ДЗ
Доработать CI для удобной отчетности, выполнения по push в git и выполнять back-up конфигураций. Создайте job (можно использовать job, созданную в ходе выполнения прошлого домашнего задания)
Шаги в job:
1. Выгрузить из вашего репозитория код тестов
2. Собрать проект
3. Выполнить все тесты
4. Прислать письмо вам на почту
-- в письме указаны
-- номер сборки
-- статус сборки
-- ветка репозитория, из которой был взят код тестов
-- количество тестов (всего/успешных/проваленных/пропущенных)
-- общее время выполнения job'ы

Настройте job так, чтобы она запускалась после каждого git push'а в ваш репозиторий (использовать webhooks) и каждую ночь в 01:00.
Помимо отчетности по e-mail, отчет должен приходить в канал в slack
Отчеты должны добавляться в систему отчетов (на ваш выбор allure, report portal и подобные)
По окончанию выполнения job, должен выполняться back-up самой job'ы и настроек (можно использовать SCM Sync configuration plugin)
Continuous Testing (Testing Pyramid, Test Metrics)
рассмотреть процессы непрерывного тестирования; рассмотреть основные метрики и ключевые понятия
Проект А
В этом модуле участники применят все свои знания и навыки для поднятия процесса автотестирования. От анализа продукта до шага в CI-системе, запускающего тесты и формирующего отчеты.
Консультация по проекту и домашним заданиям
получить ответы на вопросы по проекту, ДЗ и по курсу.
Домашние задания: 1
ДЗ
Проектная работа от EPAM. Что будем тестировать: Приложение https://events.epam.com/ предоставляет информацию о мероприятиях, которые проводит EPAM. Сайт позволяет посмотреть предстоящие/прошедшие мероприятия в разных городах, информацию о спикерах, докладах, календарь мероприятий.
Требования к фреймворку:
1. Java
2. Maven/Gradle
3. TestNG/Junit
4. Настроено логирование
5. Реализована возможность кроссбаузерного тестирования и удаленного запуска тестов
6. Реализована возможность параллельного запуска тестов
7. Код проекта хранится в Git (важна частота и содержание коммитов)
8. Для работы со страницами используется паттерн Page Object
9. Код оформлен согласно Java Code Conventions, коментарии в стиле Javadoc приветствуются

*Дополнительно: Настроена интеграция с CI и запуск тестов по расписанию
Разрешается подключение других библиотек, использование BDD подхода, Spring, Lombok

Обязательное тестовое покрытие:
1. Просмотр предстоящих мероприятий:
1.1 Пользователь переходит на вкладку events
1.2 На странице отображаются карточки предстоящих мероприятий. Количество карточек равно счетчику на кнопке Upcoming Events

2. Просмотр карточек мероприятий:
2.1 Пользователь переходит на вкладку events
2.2 Пользователь нажимает на Past Events
2.3 На странице отображаются карточки предстоящих мероприятий.
2.4 В карточке указана информация о мероприятии:
- язык
- название мероприятия
- дата мероприятия
- информация о регистрации
- список спикеров // Минимально достаточное - проверить одну карточку. В идеале все что отображаются.

3. Валидация дат предстоящих мероприятий:
3.1 Пользователь переходит на вкладку events
3.2 Пользователь нажимает на Upcoming Events
3.3 На странице отображаются карточки предстоящих мероприятий.
3.4 Даты проведения мероприятий больше или равны текущей дате (или текущая дата находится в диапазоне дат проведения)

4. Просмотр прошедших мероприятий в Канаде:
4.1 Пользователь переходит на вкладку events
4.2 Пользователь нажимает на Past Events
4.3 Пользователь нажимает на Location в блоке фильтров и выбирает Canada в выпадающем списке
4.4 На странице отображаются карточки прошедших мероприятий. Количество карточек равно счетчику на кнопке Past Events. Даты проведенных мероприятий меньше текущей даты.

5. Фильтрация докладов по категориям:
5.1 Пользователь переходит на вкладку Talks Library
5.2 Пользователь нажимает на More Filters
5.3 Пользователь выбирает: Category – Testing, Location – Belarus, Language – English, На вкладке фильтров
5.4 На странице отображаются карточки соответствующие правилам выбранных фильтров

6. Поиск докладов по ключевому слову:
6.1 Пользователь переходит на вкладку VIDEO - Talks Library
6.2 Пользователь вводит ключевое слово QA в поле поиска
6.3 На странице отображаются доклады, содержащие в названии ключевое слово поиска

*Дополнительно: Тестовое покрытие может быть расширено для функциональности фильтрации
TestIT
познакомиться с TestIT
Защита проекта
реализовать проект автоматизации тестирования с применением имеющихся знаний и навыков для заданного приложения;
защитить проект и получить рекомендации экспертов.
Запланируй обучение с выгодой!
Получи скидку 5% на курсы октября и ноября по промокоду hellootus →