На эту замечательную библиотеку я натолкнулся совсем случайно, когда искал разного рода статьи по компонентному фреймворку Apache Wicket. Я ее тут же скачал и начал с ней играться. Далее я опишу свой небольшой, что лукавить, опыт общения с этой библиотекой. По мере более глубокого изучения этой библиотеки буду стараться обновлять эту статью или писать новые.

Что такое Watij?

Watij расшифровывается как Web Application Testing In Java. Это библиотека, которая предоставляет Java интерфейс к функциональности браузера. На момент написания статьи Watij 3.2.1 поддерживает работу только с браузером Microsoft Internet Explorer.

В дистрибутив Watij входят откомпилированная библиотека, исходный текст библиотеки и оболочка Watij BeanShell, при помощи которой можно быстро опробовать функцианальность библиотеки.
Ниже приведен пример простейшей программы с использованием Watij:

IE ie = new IE();
ie.start("http://www.google.com");
ie.textField(name,"q").set("Watij");
ie.button("Google Search").click();

Этот код открывает новое окно браузера, загружает страницу http://www.google.com, заполняет текстовое поле с именем q значение Watij и нажимает на кнопку с текстов Google Search (замените на “Поиск в Google”, если у вас Google открывает по-русски). После этого браузер отправит запрос на сервер и отобразятся результаты пользователя.

Зачем это нужно?

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

Что это нам дает?

Во-первых, можно, хотя бы частично, снять нагрузку по тестированию с инженеров по качеству (тестеров короче :) ведь им, порой приходится тестировать одно и тоже после очередного развертывания приложения в тестовой среде. А поскольку тестеры тоже люди, то исключается человеческий фактор: машина не спит, не есть и никогда не устает и будет выполнять свою задачу (почти как Терминатор).

Во-вторых, делается это быстрее, сразу после развертывания приложения и при обнаружении ошибки можно более оперативно ее исправить.

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