На этих тренингах я буду рассказывать про Selenium и про различные фреймворки, библиотеки и вспомогательные инструменты, расширяющие возможности Selenium или упрощающие его использование. Конечно, не обойдём вниманием типичные сложности и затруднения, возникающие при использовании Selenium и поговорим про способы их преодоления, в том числе с привлечением дополнительных инструментов. Разумеется, всё это будет сопровождаться живыми демонстрациями, я дам ссылки на дополнительные материалы, поделюсь фрагментами работающего кода.
Тренинг будет состоять из шести занятий, разбитых на три модуля по два занятия в каждом.
Первый модуль -- вводный, он предназначен для тех, кто не имеет опыта работы с Selenium или уже использовал его для проектирования несложных тестов. Впрочем, он будет интересен и тем, кто уже достаточно давно разрабатывает автотесты, но хочет вспомнить или укрепить теоретические основы автоматизации.
В первом модуле я расскажу и покажу:
- как с нуля развернуть всё необходимое для разработки и выполнения тестов,
- как отлаживать тесты, проходя их в пошаговом режиме,
- как сделать гибкий механизм настройки на тестовый стенд при помощи конфигурационных файлов,
- как подгружать тестовые данные из внешнего файла,
- как запускать тесты в разных браузерах и на удалённой машине.
- что автоматизировать, а что нет,
- насколько длинные сценарии реализовывать в тестах,
- насколько сложные делать проверки,
- как выбрать хорошие устойчивые локаторы,
- использовать или нет "карты пользовательского интерфейса".
За последние несколько лет Selenium приобрёл чрезвычайно высокую популярность, и вполне заслуженно. Поддержка практически всех современных браузеров, кроссплатформенность, возможность разработки тестов на различных языках программирования, наличие хорошего рекордера, возможность использования готовых тестов для нагрузочного тестирования -- по своим возможностям он опережает большинство не только бесплатных, но и коммерческих инструментов автоматизации тестирования.
Однако, как это часто бывает в среде разработки инструментов с открытым кодом, Selenium не является комплексным решением. Он предназначен для решения одной задачи, но зато делает это лучше всех. Представленная ниже диаграмма демонстрирует типовую структуру средств автоматизации тестирования и окружающей инфраструктуры, и показывает, какое место в ней занимает Selenium.
../trainings/images/stories/automation_tool_structure.png
Selenium -- это драйвер веб-интерфейса. В дополнение к нему необходимо выбрать сначала язык программирования, а потом ещё один или несколько фреймворов -- для группировки и запуска тестов, для распараллеливания тестов, для облегчения разработки тестов, для журналирования процесса выполнения и так далее. А ещё нужно выбрать среду разработки и инструмент сборки и непрерывной интеграции.
Это типичный путь, характерный для программ с открытым кодом -- вместо комплексного решения предлагается самостоятельно построить нужную вам систему из отдельных "деталей". И я помогу вам пройти этот путь, расскажу о том, какие бывают детали, как их соединять друг с другом, и покажу, что получается в результате.
Третий модуль ориентирован на наиболее взыскательную аудиторию -- профессионалов-автоматизаторов.
В этом модуле, наиболее сложном технически, мы будем обсуждать различные тонкости программирования автотестов, и я рассчитываю на то, что источником информации в этой части тренинга буду не только я, но и сами участники. Я расскажу о технических решениях, которые я применяю, и надеюсь услышать, как вы решаете аналогичные задачи. Мы обсудим:
- способы оптимизации скорости выполнения тестов,
- различные стили написания тестов, в частности использование Hamcrest, BDD, dependency injection,
- различные стили проверок -- проверка результата и проверка состояния, отложенные проверки,
- способы журналирования действий,
- организацию обработки нештатных ситуаций и восстановление работоспособности тестов после сбоев,
- способы работы с "нативными" диалоговыми окнами,
- и другие технические хитрости.
Подробная программа и стоимость приобретения записей курса