Для тестирования веб-приложений (а именно этим я сейчас и занимаюсь на текущей работе) крайне необходим веб-браузер. Поиграл в капитана Очевидность, ага Когда речь идет о ручном тестировании или о запуске небольших тестовых сценариев, то тут все ясно — используется один из обычных браузеров (Firefox, Chrome, Safari, Opera) или Internet Explorer. Но что делать, если у вас есть хороший набор браузерных тестов и вы хотели бы их запускать либо в фоне на рабочем компьютере, либо на выделенном CI-сервере? Запускать обычный браузер и наблюдать мельтешащие окна — не вариант. И тут на помощь нам приходят так называемые headless-браузеры, которые позволяют выполнять ваши тесты с использованием браузера (чаще всего Webkit-based), но при этом не отвлекают вас лишними окнами (создается некоторое виртуальное, невидимое окно браузера, в котором и проходят тесты) Основные существующие headless-браузеры перечислены тут. На случай, если ссылка устареет, ниже приведен этот перечень:
- HtmlUnit — Java. Custom browser engine. JavaScript support/DOM emulated. Open source.
- Ghost — Python only. WebKit-based. Full JavaScript support. Open source.
- Twill — Python/command line. Custom browser engine. No JavaScript. Open source.
- PhantomJS — Command line/all platforms. WebKit-based. Full JavaScript support. Open source.
- Awesomium — C++/.Net/all platforms. Chromium-based. Full JavaScript support. Commercial/free.
- SimpleBrowser — .Net 4/C#. Custom browser engine. No JavaScript support. Open source.
- ZombieJS — Node.js. Custom browser engine. JavaScript support/emulated DOM. Open source.
- EnvJS — JavaScript via Java/Rhino. Custom browser engine. JavaScript support/emulated DOM. Open source.
- Watir-webdriver with headless gem — Ruby via WebDriver. Full JS Support via Browsers (Firefox/Chrome/Safari/IE).
- Spynner — Python only. PyQT and WebKit.