JavaScript Functional Web Automation (ProtractorJS/WebDriverJS)
Для кого?
- Кто хочет улучшить свою компетенцию, и получить знания для самостоятельного написания автотестов
- Кто хочет осваивать новейшие инструменты автоматизации, и желает идти в ногу со временем
- Кто желает увидеть возможности JavaScript и TypeScript в автоматизации тестирования
- Кто уже пробует автоматизировать, и хочет попробовать разные подходы
- Кто любит Selenium WebDriver, и желает приобщится к сообществу автоматизаторов
- Кто замечал что чистый WebDriver работает плохо с современными веб-приложениями, и хочет узнать, что с этим делать
Нужны знания в следующих направлениях:
- Базовые знания JavaScript, или скриптовых языков программирования
- Клиент-серверная архитектура
- Понимание структуры вебстраниц
- Базовые знания HTML, CSS
- Опыт работы с Selenium WebDriver на любом языке будет плюсом
Чему мы хотим вас научить?
- Как автоматизировать тесты с использованием ProtractorJS (WebDriverJS)
- Особенностям этого фреймворка
- Основным паттернам проектирования автотестов
- Как работать с асинхронным JS кодом
- Поиску элементов по различным локаторам
- Взаимодействию с элементами на странице
- Как использовать тест раннеры (на примере MochaJS/JasmineJS и CucumberJS)
- Настройке и конфигурированию тестов под различные окружения
- Дебагу тестов
- Репортинг, логгирование и запуск тестов. Использование NPM для управления тестовым проектом
Необходимый для начала софт
- Для хранения кода и проверок домашних заданий мы будем использовать GitHub, потому нам нужны:
- GIT. Установить - https://git-scm.com/
- GitHub for desktop. Установить - https://desktop.github.com/
- Завести бесплатный аккаунт на GitHub (если еще не заведен) - https://github.com/join
- Для выполнения тестов нам нужен:
- Chrome - https://www.google.com/chrome/browser/desktop/index.html
- Для написания кода нам нужна среда разработки:
- Visual Studio Code – бесплатный редактор - https://code.visualstudio.com/
- Среда выполнения JavaScript кода – NodeJS (9.X) - https://nodejs.org
Вступление, обзор и разворачивание проекта
Вступление. Обзор текущей ситуации в автоматизации тестирования. Преимущества и особенности JavaScript как языка для автоматизации. Обзор используемых технологий. Разворачивание проекта. Не будем отходить от стандартной практики и первое занятие я посвящу введению, обзорной лекции по фреймворку, настройке окружения и запуск проекта-пустышки. Стартовый проект настроен, окружение подготовлено, проект запускается и заканчивает работу без ошибок.
- Пример как развернуть проект и запустить его.
- Что такое ProtractorJS?
- Зачем он нужен?
- Как его использовать?
- Почему JS?
- Где он находится в общей экосистеме Selenium?
Список уроків
Вступление, обзор и разворачивание проекта
1:40:54
CSS и xPath локаторы. Специфичные локаторы. Принципы поиска элементов на странице
1:51:33
Доступные действия на странице. Возможности объектов WebElement, Browser и других
2:09:30
Test Runners. Организация тестов и конфигурация запусков
2:00:26
Ожидания. Явные и неявные. ExpectedConditions. Определение собственных условий ожидания
2:10:28
ООП для организации структуры тестов. Паттерны PageObject, Model, Lazy WebElement
2:08:07
Особенности работы асинхронного кода. Callbacks, Promises.
2:02:12
Оптимизация процесса разработки. Настройка отладчика, точки остановки. Интерактивный режим
1:56:54
Низкоуровневые манипуляции ActionSequence. Исполнение JS кода в контексте страницы и Angular
1:42:12
Отчетность. Настройка разных отчетов - вывод в терминал. jUnit XML, Allure reports, Report Portal
1:50:12
Контейнеризация. Упаковка тестового проекта. Настройка запусков, конфигурирование. CI/CD
1:47:52
Дальнейшее развитие проекта: Тестовая Ферма. Сравнение с другими фреймворками
1:44:08