Skip to Content

Windmill. He Selenium'ом единым...

Бесспорно, в настоящее время, Selenium ‑ наиболее популярный бесплатный инструмент для автоматизированного тестирования веб приложений. Он интенсивно развивается и обрастает новыми возможностями, но не все так гладко: проблемы с кросс доменным тестированием решены не до конца, IDE существует лишь для Firefox и т.д. Во многом спасает обширное сообщество и неплохая документация ‑ на просторах сети вы сможете найти ответы на большую часть своих вопросов.
Но неужели не хочется чего-то более простого и элегантного? Инструмента, который действительно облегчит вашу жизнь, а не заменит одни проблемы другими. Естественно хочется. И такой инструмент есть. Знакомьтесь, Windmill.
 
Windmill – фреймворк для автоматизированного тестирования веб приложений. Появился он, как «побочный продукт» разработки сервиса Chandler Server Web UI (Cosmo) (сервис представляет собой «электронный органайзер» для управления задачами и событиями ‑ PIM). Сервис не получил ожидаемой популярности из-за затянувшегося процесса разработки (проект стартовал в 2001 году, когда ниша была еще пуста, а первый релиз состоялся лишь в 2008 году, когда конкурентов стало хоть пруд пруди). Но, несмотря на то, что разработка длилась несколько лет, новые версии продукта появлялись с завидной частотой. Изначально, участвовавшие в процессе разработки тестировщики, пытались использовать Selenium для автоматизации тестов. Но поскольку, интерфейс сервиса был перегружен JS и AJAX, а новые версии появлялись слишком часто, то ничего хорошего из этого не вышло. В результате, было принято решение разработать свой собственный инструмент, который позволял бы разрабатывать автотесты с минимальными затратами времени и сил. Так и началась история фреймворка под названием Windmill.
Ближе к окончанию проекта стало ясно, что фреймворк получился чертовски удачным и сможет успешно конкурировать с существующими ныне инструментами для автоматизации. Поэтому в сентябре 2008 года увидела мир первая стабильная версия продукта ‑ Windmill 0.8.2. Сейчас проект интенсивно развивается и обещает стать весьма популярным среди разработчиков и специалистов по обеспечению качества ПО.
Немного подробнее о том, кто и зачем разрабатывает Windmill, можно узнать в блоге Адама Кристиана (Adam Christian) – одного из разработчиков фреймворка. В первую очередь рекомендую ознакомиться со статьей Bringing Windmill to Life.
 
На этом покончим с историей и перейдем к более насущным вещам – рассмотрению возможностей Windmill.
 
Когда я впервые увидел Windmill, точнее даже не увидел, а только прочитал о его возможностях, то мне незамедлительно вспомнился небезызвестный Эрик Картман с его знаметым возгласом: «Шикаааааррно!». А когда мне удалось записать и запустить свой первый тест, то моему восторгу вообще не было предела. Однозначно, сей продукт, сделан на совесть. Людьми и для людей.
 
Но оставим эмоции в стороне и попробуем взглянуть более пристально на этот фреймворк.
 
Windmill написан на Python и JavaScript. Подробностей о его устройстве не так много. Кое-что можно почерпнуть из парочки презентаций находящихся на официальном сайте. Единственное, что можно сказать наверняка – это то, что общий принцип работы очень схож с Selenium RC, т.е. Windmill тоже представляет собой прокси-сервер, который взаимодействует с тестируемым приложением посредством JS функций.
 
А теперь более подробно о возможностях Windmill.
 
Кроссплатформенность.
На данный момент заявлена поддержка Windows, Mac OS X и Linux.
Конечно же, кросплатформенностью могут похвастаться многие инструменты для автоматизации, но учитывая то, что мне доводилось видеть Django запущенный на Windows Mobile, использование Python вселяет большие надежды.
  
Поддержка всех основных браузеров, как для воспроизведения, так и для записи тестов.
На данный момент это IE, Firefox, Safari, Chrome и Opera. При этом во всех этих браузерах вы можете использовать полноценную IDE. Вам больше не понадобятся Eclipse или Visual Studio, т.к. тесты для любого браузера можно написать прямо в Windmill IDE.
 
Стоит отметить, что ситуация с Opera не очень ясна. Просматривая документацию, можно заметить, что кое-где браузер находится в списке поддерживаемых, а кое-где нет. Но все же, запустить Windmill с оперой мне удалось. 
 
Поддержка защищенных SSL соединений.
 
Возможность кросс доменного тестирования «из коробки».
 
Поддерживаемые языки для написания тестов – Python, JavaScript, Ruby.
 
Встроенные инструменты для отладки – Firebug и Firebug Lite.
Видели когда-нибудь Firebug в IE? Нет? Смотрите Smile
 
 
Поддержка большого количества команд для взаимодействия с приложением.
Набор команд практически полностью соответствует Selenium.
 
 
Интегрированный XPath Explorer.
 
  
Интегрированный Assertion Explorer.
 
 
Генерация отчетов о результатах прохождения тестов и о производительности приложения (указывается время выполнения различных команд, время загрузки страниц и т.п.).
 
Наличие виджета, упрощающего работу с фреймворком.
Виджет позволяет запускать IDE и тесты, а также дублирует командную строку из которой можно управлять Windmill сервером.
 
 

Работать с Windmill очень просто. Убедится в этом, вы можете, посмотрев видео представленное ниже.

Это же видео в более высоком качестве можно увидеть на официальном сайте (Осторожно, трафик! Размер ролика ‑ 128 Мб).
 
В ближайшем будущем, я постараюсь написать небольшую инструкцию о том, как установить Windmill и как создавать автотесты с его помощью.
 
Более подробно познакомится с Windmill вы можете на официальном сайте Windmill Testing Framework. Там же вы найдете последнюю версию фреймворка, а также, пока не очень обширную, документацию к нему.
 
Подводя итоги, скажу, что, на мой взгляд, Windmill имеет хорошие перспективы стать популярным инструментом для автоматизации. Надеюсь, что проект не останется лишь перспективным начинанием, а будет интенсивно развиваться. Ну а частота коммитов в SVN делает эти надежды небезосновательными.
 

 

++++++++++