Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4

RedDeveloper
15.03.2023 10:20
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4

Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы веб-браузеров. Selenium 4 - это последняя версия Selenium, поддерживающая протокол Chrome DevTools Protocol (CDP), который позволяет общаться и контролировать различные аспекты браузера, такие как сеть, безопасность, производительность и т.д.

Одной из функций CDP является перехват сетевых запросов и ответов, что может быть полезно для отладки, тестирования или анализа веб-приложений. Вы можете использовать CDP для перехвата сетевого трафика и создания файлов HAR (HTTP Archive), которые представляют собой файлы в формате JSON, содержащие подробную информацию о каждом запросе и ответе.

Краткое описание того, как работают наши утилиты har
Краткое описание того, как работают наши утилиты har

Однако прямое использование CDP может быть громоздким и сложным, поскольку необходимо написать много кода для обработки различных сценариев и событий. Поэтому некоторые разработчики создали утилиты или библиотеки, которые упрощают этот процесс и предоставляют абстракцию более высокого уровня.

Одной из таких утилит является selenium-har-util , которая является нашим проектом с открытым исходным кодом на GitHub. Эта утилита предназначена для работы с Selenium 4 на Java и поможет вам легко получать сетевые запросы и записывать файлы HAR.

В этой статье блога я покажу вам, как использовать selenium-har-util в вашем проекте Selenium 4 и создавать HAR-файлы для ваших тестов веб-автоматизации.

Предварительные условия

Чтобы использовать selenium-har-util, вам необходимо:

- Selenium 4, поддерживающий CDP

- ChromeDriver

- Google Chrome или любой другой браузер, поддерживающий CDP Session (пока не протестирован в Geckodriver или Safari)

- Java 8

- Maven

Установка

Чтобы установить selenium-har-util в качестве зависимости в ваш проект Maven, вам нужно добавить следующий репозиторий:

<repository>
  <id>jitpack.io</id>
  <url>https://jitpack.io</url>
</repository>

А затем добавьте следующую зависимость:

<dependency>
  <groupId>com.github.blibli-badak</groupId>
  <artifactId>selenium-har-util</artifactId>
  <version>1.0.2</version>
</dependency>

Если вы используете не Maven, а другой инструмент, вы можете проверить эту ссылку для получения дополнительных инструкций: https://jitpack.io/#blibli-badak/selenium-har-util

Использование

Чтобы использовать selenium-har-util в вашем коде, вам нужно выполнить следующие шаги:

1. Создайте экземпляр драйвера как обычно:

driver = new ChromeDriver(options);

2. Интегрируйте с сетевым слушателем, предоставляемым selenium-har-util:

NetworkListener networkListener = new NetworkListener(driver,”har.har”);

Первый аргумент - экземпляр вашего драйвера, второй аргумент - имя создаваемого HAR-файла.

3. Начните перехватывать сетевые запросы:

networkListener.start();

Это позволит включить сетевой домен в CDP и добавить слушателя для перехвата запросов.

4. Запустите свой тест автоматизации как обычно:

driver.get("https://example.com");
// do some actions on the web page

5. После завершения тестирования создайте файл HAR с помощью этого метода:

driver.quit();
networkListener.createHarFile();

Это запишет весь перехваченный сетевой трафик в JSON-файл с именем har.har (или любым другим именем, которое вы указали) в директории вашего проекта.

6. Откройте файл HAR с помощью вашей любимой программы просмотра HAR или просмотрите его через вкладку inspect element -> Network в вашем браузере.

Вы должны увидеть что-то вроде этого:

Вы должны увидеть что-то вроде этого

Заключение

В этой статье я показал, как использовать selenium-har-util для захвата сетевых запросов и создания файлов HAR с помощью Selenium 4 на Java. Эта утилита может помочь вам легче отлаживать, тестировать или анализировать веб-приложения, предоставляя подробную информацию о каждом запросе и ответе.

Надеюсь, вы нашли эту статью полезной и интересной. Если у вас есть вопросы или отзывы о selenium-har-util, не стесняйтесь оставить комментарий ниже, или свяжитесь с нами на нашей странице GitHub.

Счастливого тестирования!

GitHub - blibli-badak/selenium-har-util

Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы

19.03.2023 13:43

Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем запускать наши php-файлы через localhost на наших компьютерах. Мне с трудом удалось установить его и я решил поделиться этой статьей, чтобы помочь тем,...

Оптимизация React Context шаг за шагом в 4 примерах
Оптимизация React Context шаг за шагом в 4 примерах

19.03.2023 13:03

При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после поставщика контекста. Это позволит избежать ненужных повторных рендеров.

Библиотека для работы с мороженым
Библиотека для работы с мороженым

19.03.2023 11:50

Лично я попрощался с операторами print() в python. Без шуток.

Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp

19.03.2023 06:15

Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они постоянно обновляют версию (а нам нужно быстро наверстать упущенное!).

Уроки CSS 6
Уроки CSS 6

18.03.2023 11:32

Здравствуйте дорогие читатели, я Ферди Сефа Дюзгюн, сегодня мы продолжим с вами уроки css. Сегодня мы снова продолжим с так называемых классов.

Что такое Css? Для чего он используется?
Что такое Css? Для чего он используется?

18.03.2023 11:16

CSS, или "Каскадные таблицы стилей", - это язык стилей, используемый в веб-страницах. CSS является одним из основных инструментов веб-разработки наряду с HTML и JavaScript.