Вкладка Network в DevTools: как смотреть запросы браузера
Вкладка Network превращает «у меня что-то не работает» в «сервер вернул 500 на POST /api/order». Это главный инструмент, отличающий тестировщика от пользователя, который жалуется.
Как открыть и что настроить сразу
DevTools открывается по F12 или Ctrl+Shift+I (на Mac — Cmd+Option+I). Вкладка Network пустая, пока страница не перезагружена: она пишет только то, что происходит при открытых инструментах.
Первым делом включите две галочки, без них половина находок теряется:
- Preserve log — не очищать список при переходе на другую страницу. Без неё запрос, после которого произошёл редирект, исчезает вместе с историей.
- Disable cache — не брать файлы из кэша, пока DevTools открыт. Иначе вы проверяете старую версию и не понимаете, почему правка «не приехала».
Что означают колонки
| Колонка | Что показывает | На что смотреть |
|---|---|---|
| Name | Адрес запроса | Ищите свой метод API среди статики |
| Status | Код ответа | 4xx — проблема в запросе, 5xx — на сервере |
| Type | Тип содержимого | Фильтр Fetch/XHR оставляет только обращения к API |
| Size | Размер ответа | «(from disk cache)» значит, что ответ не с сервера |
| Time | Длительность | Ищите то, что висит секундами |
Фильтр Fetch/XHR — первое, что стоит нажать: он убирает картинки, шрифты и скрипты, оставляя обмен данными с сервером. Именно там живут интересные дефекты.
Что смотреть внутри запроса
Клик по строке открывает вкладки, каждая отвечает на свой вопрос.
- Headers — куда, каким методом, с какими заголовками. Здесь виден токен авторизации и
Content-Type. - Payload — что именно отправили. Классика: интерфейс показывает одно, а уходит другое.
- Response — что вернул сервер, до обработки скриптами. Здесь ловится «200 с ошибкой внутри тела».
- Timing — из чего сложилось время ответа: ожидание сервера или загрузка данных.
Код ответа 200, а в теле {"success": false, "error": "..."}. Мониторинг такое не ловит — для него всё хорошо, — а пользователь видит сбой. Всегда открывайте Response, а не только смотрите на статус.
Copy as cURL — приём, экономящий часы
Правый клик по запросу → Copy → Copy as cURL. В буфере оказывается готовая команда, которая повторяет запрос целиком: метод, заголовки, тело, куки. Её можно вставить в терминал или импортировать в Postman.
Зачем это тестировщику:
- Повторить запрос без интерфейса и понять, чья ошибка — фронтенда или сервера.
- Поменять одно поле и посмотреть, есть ли проверка на сервере (изменить цену, подставить чужой идентификатор).
- Приложить к репорту точный способ воспроизведения, не зависящий от кликов.
В команде лежат ваши куки и токен. Замените их на <токен>, иначе вы кладёте в общедоступный трекер действующий доступ к своему аккаунту.
HAR-файл: снимок всего обмена
Кнопка «Export HAR» сохраняет весь список запросов со всеми деталями в один файл. Разработчик открывает его у себя и видит ровно то, что видели вы. Незаменимо для дефектов, которые воспроизводятся только у одного пользователя.
Та же оговорка про безопасность: HAR содержит заголовки авторизации. Для внешней передачи их вычищают.
Приёмы, о которых редко рассказывают
- Фильтр по коду ответа. В строке фильтра можно написать
status-code:500и сразу увидеть все упавшие запросы, не листая список. - Блокировка запроса. Правый клик → Block request URL. Так проверяется, что интерфейс делает, когда конкретный метод недоступен, — обычно выясняется, что ничего хорошего.
- Режим Offline в списке троттлинга. Быстрый способ увидеть, есть ли у продукта человеческое поведение без сети.
- Сортировка по Time. Один клик по колонке показывает самые медленные запросы — часто это выгрузка или поиск без ограничения.
- Колонка Initiator. Показывает, какой скрипт отправил запрос. Помогает, когда непонятно, откуда взялось обращение к серверу.
Троттлинг: проверка на медленной сети
Выпадающий список No throttling позволяет притвориться медленным интернетом. Это не экзотика: на «Slow 3G» вылезают дефекты, которых не видно на офисном Wi-Fi.
- Индикаторы загрузки, которых нет, — интерфейс просто замирает.
- Двойные отправки: пользователь не понял, что запрос идёт, и нажал ещё раз.
- Гонки данных: экран отрисовался раньше, чем пришли данные.
- Таймауты, которые никто не обработал.
Коды ответов, которые вы будете здесь видеть, разобраны в шпаргалке по HTTP, а потренироваться на живом учебном сервере можно в тренажёре «клиент API».
Что делать, если запросов слишком много?
Включите фильтр Fetch/XHR — уйдут картинки, шрифты и скрипты. Дальше отфильтруйте по части адреса: достаточно вписать в строку фильтра «order» или «cart», чтобы остались только нужные обращения.
Почему вкладка Network пустая?
DevTools записывает только то, что происходит после открытия. Перезагрузите страницу с открытой вкладкой.
Куда пропал запрос после нажатия кнопки?
Скорее всего, произошёл переход на другую страницу и список очистился. Включите Preserve log.
Чем отличается Payload от Response?
Payload — что отправил браузер, Response — что ответил сервер. При разборе дефекта нужны оба: часто отправляется не то, что показано в интерфейсе.
DevTools осваивается только руками: прочитать про вкладку Network можно за десять минут, а замечать в ней дефекты — навык. На курсе для этого сделан отдельный тренажёр по каждой вкладке, включая троттлинг, кэш, cookie и хранилища. «Ручной тестировщик» — 14 900 ₽ один раз, доступ навсегда.