188 подписчиков

Wireshark: первые шаги в отслеживании запросов

172 прочитали
Введение В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов.

Введение

В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов. Например, при сверке с документацией или в случае ее отсутствия при работе с ПО (программным обеспечением). На помощь придут снифферы — приложения или сервисы, позволяющие сканировать пакеты, которые пересылаются через выбранную сеть (локальную или внешнюю). Например, существует очень удобное приложение Fiddler, которое позволяет не только отслеживать, но и отправлять запросы. Расширенная версия предоставляется на платной основе, а для операционной системы Windows можно бесплатно скачать упрощенную — Fiddler Classic.

Но мы предлагаем обратить внимание на не менее функциональный и полностью бесплатный аналог — Wireshark, о котором пойдет речь в этом лонгриде.

Оба сниффера выполняют примерно одинаковую задачу — отслеживают передаваемые пакеты. Их разница в том, что пока Fiddler работает «из коробки» и довольно прост для освоения. Wireshark имеет более высокий порог входа, но предоставляет больше возможностей через обширные настройки и поддержку различных плагинов.

Конечно же, выбор в пользу того или иного сниффера всегда остается за пользователем :)

Пошаговое руководство для отслеживания http-запроса

Шаг 1. Начало работы

Методы работы Wireshark во многом совпадают с Fiddler: запустить отслеживание трафика в нужной сети, выполнить операции, запросы для которых необходимо отследить, завершить процесс, просмотреть логи.

Запускаем программу > появится окно с выбором сети > выбираем необходимые пакеты для отслеживания:

Введение В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов.-2

В качестве примера будем использовать сеть «Ethernet 2» (с подключением к интернету). Если требуется работать с локальным оборудованием, то в этом случае выбираем локальную сеть.

Шаг 2. Настройка

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

Навигация по кнопкам:

Введение В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов.-3

Шаг 3. Фильтрация

После того как мы начали отслеживание, выполняем нужные нам операции, и снова останавливаем процесс. В нашем случае — это запрос информации из базы данных (БД) для тестов.

В итоге получаем список всех перехваченных пакетов и сторонних в том числе. Для фильтрации только интересующих нас http-запросов выбираем строку:

Введение В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов.-4

Чтобы отфильтровать запросы, достаточно указать «http» в строку фильтра.

Также существуют более точные поисковые команды для отбора нужных запросов, например, «http.response.code == 404» оставит только запросы с кодом ответа 404.

Полный список опций по фильтрам можно найти в документации Wireshark: https://www.wireshark.org/docs/dfref/h/http.html

Шаг 4. Отбор http-запросов

После проведенных манипуляций получаем выдачу следующего вида:

Здесь представлены все произведенные http-запросы.
Здесь представлены все произведенные http-запросы.

Шаг 5. Извлечение .json-выдачи

Мы хотим получить .json-выдачу из запроса (ответа) 505. Для этого два раза кликаем по нему и в открывшейся форме выбираем «JavaScript Object Notation»:

Введение В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов.-6

В нижней части формы представлен hex-код выдачи (слева), и ее представление в текстовой форме (справа). Для того чтобы получить только .json-выдачу, нажимаем на окно с ней правой кнопкой мыши, и выбираем «..as Printable Tex»:

Введение В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов.-7

Шаг 6. Завершение

Теперь в буфере обмена находится вся .json-выдача, которую перенесем в более удобный редактор, например Notepad++:

Введение В ходе тестирования приложения, а в частности при работе с http-запросами нередко возникает потребность в отслеживании запросов и ответов.-8

На основе полученной .json-выдачи можно делать выводы о требованиях к реализуемым тестам.

Заключение

Итак, мы на примере разобрали отслеживание http-пакетов, необходимое для исследования API-составляющей приложения или сервиса при неполной или отсутствующей документации.

Wireshark предоставляет инструменты, необходимые для контроля передаваемых пакетов и покрывает весь функционал более известного приложения — Fiddler. Существенным преимуществом Wireshark стоит назвать модель Open Source, удобный пользовательский интерфейс, а также большое количество форумов и обсуждений в сети, где без труда можно найти решение конкретного вопроса. Кроме того, Wireshark предоставляет возможность бесплатного использования и поддерживается пользователями за счет их добровольных взносов.

__________________

Предлагаем подписаться на наши социальные сети и блог, чтобы не пропустить интересные события и материалы по автоматизации тестирования (SDET):
Telegram: https://t.me/simbirsoft_dev ВКонтакте: https://vk.com/simbirsoft_team
Яндекс Дзен:
https://zen.yandex.ru/simbirsoft Habr: https://habr.com/ru/company/simbirsoft/blog/ YouTube: https://www.youtube.com/user/SimbirSoft/videos