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

author

Александр Хотемской

Александр начинал как фрилансер. Продолжил свою карьеру переходом в Luxoft. Здесь получил множество возможностей для развития, которыми с удовольствием воспользовался - работа с разными технологиями, в разных командах, командировки в другие страны. Здесь же собеседовал множество людей на позиции в тестировании, и менторил молодых интернов-тестировщиков. Попав компанию Wargaming.net с головой окунулся в совершенно другой стек - game development и python. Здесь закалялась сталь - результатом стал изящный фреймворк для автотестирования прямо в игре. Работал QA Automation Lead в компании Lohika, JavaScript Automation Consultant в Ciklum. Занимался созданием и развитием фреймворков для автотестирования, их поддержкой и развитием. А сейчас независимый консультант и тренер StartIT.


Вступление, обзор и разворачивание проекта

Вступление. Обзор текущей ситуации в автоматизации тестирования. Преимущества и особенности 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