Разработка тестов на Python с использованием Selenium 2.0
Этот тренинг устарел. Вместо него запущен новый: Selenium WebDriver: полное руководство
Онлайн-тренинг с домашними заданиями, 3 занятия
Тренер: Баранцев Алексей
За прошедшие несколько лет инструмент автоматизации тестов для веб-приложений Selenium приобрел фантастическую популярность.
Владение этим инструментом стало одним из обязательных умений для тестировщика-автоматизатора, достаточно посмотреть динамику вакансий, чтобы убедиться в этом.
Если вы хотите считаться профессионалом в области автоматизации тестирования, строчка "я знаю Selenium" обязательно должна присутствовать в вашем резюме.
Простые тесты можно создавать при помощи рекордеров Selenium IDE или Selenium Builder. Но при увеличении объёма и сложности тестов этот подход теряет свою эффективность и привлекательность. Профессионалы пишут тесты на языках программирования.
Если до этого Вы не занимались автоматизацией и не знакомы с Selenium, то лучше начать с курса Selenium 2.0: стартовый уровень.
Python входит в число четырёх языков программирования, которые официально поддерживаются Selenium (наряду с Java, Ruby и C#). Также существует аналогичный тренинг на языке Java и на языке C#.
Этот курс предназначен для тех, кто хочет освоить программный интерфейс Selenium 2.0 и научиться разрабатывать автотесты для веб-приложений на языке программирования Python.
После прохождения тренинга учащийся будет уметь разрабатывать автоматизированные тесты для веб-приложений на языке программирования Python с использованием инструмента Selenium 2.0, в частности:
- владеть базовым набором команд Selenium 2.0, эмулирующих действия пользователя (ввод текста, клики мышью),
 - владеть расширенным набором команд Selenium 2.0, эмулирующих действия пользователя (клавиатурные сочетания, перетаскивание элементов мышью и другие),
 - владеть техниками поиска (идентификации) элементов в окне браузера,
 - уметь обеспечивать стабильность и скорость выполнения тестов за счёт правильного использования ожиданий,
 - уметь выполнять проверки фактических данных, полученных из браузера, на соответствие ожидаемым значениям,
 - владеть основными шаблонами проектирования тестов, в том числе шаблоном PageObject,
 - уметь выстраивать архитектуру тестов таким образом, чтобы тесты можно было легко модифицировать и добавлять новые (при небольшом количестве тестов),
 - уметь организовывать инфраструктуру для запуска тестов на сервере непрерывной интеграции.
 
Занятие 1: инфраструктура создания и запуска тестов
- установка Selenium
 - запуск тестов из среды разработки        
- подготовка среды разработки
 - создание и настройка проекта для разработки тестов
 - запуск тестов из среды разработки
 - отладка тестов в среде разработки (пошаговое прохождение, просмотр значений переменных)
 
 - запуск тестов в разных браузерах        
- без использования Selenum Server
 - с использованием Selenium Server
 
 - тестовые фреймворки py.test и nose        
- методы завершения и инициализации
 - фабрика браузеров
 - группировка тестов в тестовые наборы (suite)
 
 - непрерывный запуск тестов        
- сервера непрерывной интеграции jenkins, TeamCity
 - параллельный запуск тестов, Selenium Grid и облачные сервисы
 
 
Занятие 2: поиск элементов и действия с ними
- открытие страниц приложения
 - поиск элементов        
- find_element и find_elements
 - поиск "на странице" и "внутри элемента"
 - явные и неявные ожидания
 - переключение между окнами
 - переключение между фреймами
 
 - действия с элементами        
- основные операции с элементами – click и send_keys
 - расширенный набор операций – класс Actions
 - нативные и синтезированные события
 
 - получение свойств элементов        
- текст элемента
 - значения атрибутов элемента
 
 
Занятие 3: PageObject и другие шаблоны проектирования тестов
- проектирование автотестов: чем оно отличается от проектирования ручных тестов
 - разделение ответственности        
- тесты/фреймворк для управления приложением
 - тесты/данные, параметризация тестов
 - логика приложения/страницы
 
 - специальные средства для представления страниц        
- шаблон проектирования PageObject
 - py.saunter и другие реализации шаблона Page Object
 
 
