Я использовал комбинацию Spring, JUnit и HttpClient с некоторым успехом в недавних проектах.
Apache HttpClient предоставляет мощный и гибкий API для построения и отправки http-запросов в ваше приложение. Он не может реплицировать веб-браузер, скажем, с помощью сценариев на стороне клиента, однако, если в итоговых HTTP-ответах достаточно содержимого (заголовки, URI, тело), вы можете использовать эту информацию для просмотра страниц в приложении и проверки поведения. Вы можете публиковать формы, выполнять перенаправления, обрабатывать файлы cookie и вводить данные в свое приложение.
JUnit (junit.org) запускает тесты, вызывая серию страниц с помощью HttpClient и может быть развернута вместе с приложением, работать автономно с ant / maven или запускаться отдельно в вашей среде IDE.
Spring (springsource.org), конечно, не является обязательным, поскольку вы можете не использовать его для своего проекта. Я нашел полезным заглушить / смоделировать части приложения, чтобы я мог изолировать определенные области, такие как внешние контроллеры, от бизнес-логики, подставляя DAO для возврата определенных значений данных. Он предоставляет превосходную инфраструктуру для тестирования и специализированные TestRunners, которые хорошо подходят для таких сред тестирования, как JUnit (или TestNG, если вы предпочитаете).