Comments 7
(Puppeeter работает реально быстрее всех инструментов, основанных на WebDriver, потому что там другой протокол, но сейчас пока его можно использовать только для локального запуска, так что в e2e тестировании он пока не слишком распространён)
Вам нужно имитировать реальных пользователей;
Получается, с помощью headless браузера парсить выдачу поисковиков не получится, он будет быстро банить?
Одно из важнейших отличий headless браузеров от обычных браузеров – это скорость их работы. Дело в том, что, когда вы загружаете страницу в браузере без GUI, ему не нужно тратить время на загрузку CSS, JavaScript и рендеринг HTML.
С чего вдруг? Если вам не нужно загружать css, javascript и рендерить html — вам вообще не нужен браузер для тестов. Хедлесс браузеры все прекрасно рендерят. Если попробовать "кликнуть" кнопку, перекрытую каким-то элементом сверху, кнопка не кликнется. И js ровно так же будет выполняться.
Отсюда
Случаи, когда вам не захочется использовать Headless браузер
Конечно же, бывают случаи, когда вам может захотеться использовать полноценный браузер, вместо headless браузера. Например:
Вам нужно имитировать реальных пользователей;
Вам нужно видеть, как отрабатывает тест;
Если вам нужно проводить дебаг, это может быть сложно с headless браузером.
Неправда. Реальных пользователей имитировать очень просто, в том то и преимущество headless браузеров, что они работают как обычные, но не требуют графической оболочки, а тесты можно писать в виде "кликни эту кнопку, вбей этот текст сюда". Более того, часть библиотек для тестирования позволяют записать свое поведение и потом воспроизводить его.
Увидеть как работает тест можно а: сделав скриншоты и сохранив их в папку в ключевые момеенты, б: запустить тест в обычном браузере (опять же, в большинстве библиотек для тестов, в том же cypress, для этого нужно только один флаг поменять).
С дебагом никаких проблем нет, покуда существует remote debug protocol, с ним все прекрасно дебажится (сборку иногда геморно настраивать для фронта).
Другое преимущество headless браузеров заключается в их способности собирать данные с веб-сайтов. Чтобы это сделать, вам не придется вручную запускать браузер. Вы можете использовать headless технологию, чтобы просто скрапить HTML. И рендерить весь браузер совершенно не обязательно.
И хедлес браузер тоже использовать не обязательно, через curl HTML можно забрать.
До пункта "Популярные Headless браузеры" я был уверен, что автор путает понятие HTML движка (который строит DOM-дерево и позволяет быстро искать в нем, к примеру, селекеторами jQuery, например jsdom ), но в итоге статья представляет из себя бесполезную и неправдивую приписку к рекламе курса.
Еще один вариант использования headless браузера – это мониторинг производительности сетевых приложений.
Вот опять же, либо речь идет о производительности фронта, либо зачем вам браузер, чтобы тестировать производительность бэка?
Headless тестирование в браузере. Плюсы и минусы