Как стать автором
Обновить

Комментарии 7

Это уже вторая ваша статья по QA, которая почему-то помечена хабом «Машинное обучение».
Оуч. Спасибо, поправили. На автомате вышло
Довольно сумбурно, но суть я уловил. Буду пробовать.
Интересно, откуда Джо взял этот бред про ускорение от 2x до 15x? Firefox и Chrome в headless режиме работают ровно с такой же скоростью, как и в обычном режиме, отличия в рамках статистической погрешности. PhantomJS работал на многих сайтах даже медленнее, чем Chrome, потому что использовал более медленный JS-движок. Реального ускорения можно добиться разве что при использовании HtmlUnit, но он половину JS не может нормально выполнить.

(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 браузера – это мониторинг производительности сетевых приложений.

Вот опять же, либо речь идет о производительности фронта, либо зачем вам браузер, чтобы тестировать производительность бэка?

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий