Один из моих коллег - большой поклонник Watir , который, как мне кажется, похож на Watij. Мне нравится Селен , и в последнее время я планирую поиграть с Теллур .
В любом случае, связывание любого из них с механизмом непрерывной интеграции, таким как CruiseControl или Hudson (мой любимый), является отличным способом проведения функционального тестирования для веб-приложений. А JUnit отлично подходит для модульных и даже интеграционных тестов.
Ограничения на функциональное тестирование веб-приложения:
В то время как вы можете сказать пользователю, чтобы он щелкнул «первый элемент в меню слева», сказать компьютеру сделать то же самое не так просто. Среды тестирования веб-приложений не могут смотреть на экран и легко различать, какие элементы на странице составляют меню. Им нужно больше деталей о том, с каким элементом взаимодействовать, а это, в свою очередь, требует некоторых знаний о том, как устроена HTML-страница. И как страница меняется, так и тесты могут.
Когда каждое небольшое изменение в одной части страницы нарушает тесты в других, не связанных между собой частях страницы, эти тесты называются «хрупкими». Чтобы убедиться, что тесты более стабильны, требуется некоторый опыт, как и при обычном модульном тестировании. Например, используйте идентификатор элемента или имя для ссылки на элементы на странице, а не на их полный XPath (может быть длинным и нечитаемым, а также хрупким) или их текстовое содержимое (если оно может измениться).