Pull to refresh

Fake — полноценное тестирование веб-приложений

Reading time2 min
Views1.6K
Fake
Буквально вчера на свет появилась первая версия удивительного проекта, о котором я хочу вам рассказать. Называется он несколько неприглядно — Fake.
Если коротко, то Fake — это основанный на WebKit и AppleScript браузер, предназначенный для автоматизированного тестирования веб-приложений. Наверняка те из вас, кто еще не познал прелести автоматизированного тестирования, помнят, как отлаживали какую-нибудь сложную форму регистрации и, отлавливая особо хитрый баг, приходилось кучу раз перезагружать страницу и раз за разом заполнять форму. И даже те, кто уже пишет тесты, не могут быть уверены, что JavaScript и Ajax работают как надо и все равно вынуждены тестировать сайт вручную загружая странички, снова и снова.

Именно эту проблему и решает Fake. Это браузер, в котором вы можете создать последовательность, моделирующую работу пользователя с сайтом — т.н. workflow (что можно примерно перевести как «рабочий процесс»), сохранить ее и затем запускать в пакетном режиме одним нажатием кнопки. Фактически, Fake позволяет проводить полноценное интеграционное тестирование веб-приложений, максимально приближенное к тому, что видит конечный пользователь. Перечень доступных действий весьма обширен и позволяет моделировать поведение пользователя на сайте с весьма высокой степенью достоверности: можно загружать страницы, кликать по ссылкам и кнопкам, отправлять формы, моделировать нажатие кнопок браузера «Вперед» и «Назад», открытие новых вкладок и т.д. Тестовая сторона представлена возможностью добавления утвеждений (assertion) на наличие на странице определенного заголовка, текста или HTML-кода. Что интересно, в качестве аргумента утверждения можно также указать js-код, возвращающий true или false, и тогда он будет выполнен при запуске процесса, а результат выполнения будет передан утверждению. На утверждения (и на ошибки выполнения страницы) можно вешать хендлеры, которые могут запускать произвольный консольный скрипт.

Составление тестовых сценариев происходит в графическом режиме путем перетаскивания действий в рабочую область в нужном порядке, также можно использовать AppleScript. Выглядит это примерно так:


Поскольку в качестве основы для проекта используется широко известный опенсорсный проект WebKit, все его плюшки доступны и в Fake, включая web inspector — местный аналог Firebug'a, что позволяет не переключаться на другой браузер для просмотра кода страницы.

Как я уже упомянул выше, первый публичный релиз проекта состоялся только вчера (версия 0.2) и он находится пока что в глубокой бете со всеми вытекающими — остутствуют сообщения об ошибках, нет документации, интерфейс недостаточно вылизан и т.д. Но проект можно использовать уже сейчас и у меня, честно говоря, очень чешутся руки натравить его на свой проект и посмотреть насколько изменится процесс разработки.

Технические детали: Fake работает только под Mac OS X 10.5 и выше и врядли будет портирован под другие системы по причине завязанности на AppleScript. Сейчас с сайта разработчика можно скачать демку, которая будет работать до 1 августа. В планах есть выпуск еще нескольких демо-версий, а затем проект станет платным.

UPD by camelos: Для всех остальных платформ есть Selenium.
Tags:
Hubs:
Total votes 20: ↑13 and ↓7+6
Comments15

Articles