← Назад к вопросам

Что такое HAR файл?

1.3 Junior🔥 241 комментариев
#Инструменты тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое HAR файл?

HAR файл (HTTP Archive) — это стандартный формат файла, используемый для записи и сохранения данных о транзакциях между веб-клиентом (например, браузером) и сервером. Этот файл содержит детализированную информацию о каждом HTTP запросе и ответе во время загрузки веб-страницы или выполнения определенных действий на сайте. Формат HAR был разработан сообществом Web Performance Group и является JSON-структурой, что делает его легко читаемым и анализируемым.

Основное предназначение и использование

HAR файлы активно используются в области веб-разработки, тестирования производительности (Performance Testing) и отладки (Debugging). Как QA Engineer, я применяю их для:

  • Диагностики проблем с производительностью веб-приложений. Анализируя HAR, можно определить, какие ресурсы (изображения, скрипты, стили) загружаются медленно, обнаружить избыточные или повторные запросы.
  • Отладки сложных ошибок. Когда возникают проблемы с API, некорректные ответы сервера или ошибки в JavaScript, HAR файл предоставляет полную картину сетевого взаимодействия, включая заголовки, тела запросов и ответов.
  • Моделирования и воспроизведения сценариев. В некоторых инструментах (например, в Fiddler или специализированных библиотеках) HAR файл можно использовать для воспроизведения последовательности запросов, что полезно для нагрузочного тестирования или регрессионных проверок.
  • Доказательства и документирования. HAR файл служит объективным доказательством проблемы при коммуникации с разработчиками или клиентами, так как содержит "сырые" данные сети.

Структура HAR файла

HAR файл представляет собой JSON объект с четкой структурой. Основные ключевые секции:

{
  "log": {
    "version": "1.2",
    "creator": { "name": "Chrome", "version": "96.0.4664.110" },
    "pages": [],
    "entries": [
      {
        "startedDateTime": "2023-12-20T10:00:00.000Z",
        "time": 150,
        "request": {
          "method": "GET",
          "url": "https://example.com/api/data",
          "httpVersion": "HTTP/1.1",
          "headers": [
            { "name": "User-Agent", "value": "Chrome/96.0" }
          ],
          "queryString": [],
          "postData": { "mimeType": "application/json", "text": "{\"key\":\"value\"}" },
          "headersSize": 256,
          "bodySize": 32
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "headers": [
            { "name": "Content-Type", "value": "application/json" }
          ],
          "content": { "size": 512, "mimeType": "application/json", "text": "{\"data\":\"success\"}" },
          "headersSize": 128,
          "bodySize": 512
        },
        "timings": {
          "blocked": 0,
          "dns": 10,
          "connect": 20,
          "send": 5,
          "wait": 115,
          "receive": 0
        }
      }
    ]
  }
}
  • entries: Наиболее важная часть — массив всех записей (запросов/ответов). Каждая запись содержит объекты request и response с детальными данными.
  • request: Включает метод (GET, POST), URL, заголовки (headers), параметры (queryString), тело запроса (postData).
  • response: Содержит статус код, заголовки ответа и самое ценное — тело ответа (content.text), которое может содержать JSON, HTML или другой контент.
  • timings: Показатели времени для различных этапов запроса (DNS lookup, connection, waiting, receiving), критичные для анализа производительности.
  • pages: Информация о страницах (например, идентификатор и время загрузки всей страницы).

Как создается и анализируется HAR файл?

Создание:

  1. С помощью браузера: В большинстве современных браузеров (Chrome, Firefox, Edge) HAR можно экспортировать из инструментов разработчика (DevTools) в разделе Network. После записи сетевой активности нужно нажать "Export HAR".
  2. С помощью прокси-инструментов: Программы типа Fiddler, Charles Proxy или Burp Suite также могут захватывать трафик и экспортировать его в формате HAR.
  3. Автоматически в тестах: При автоматизированном тестировании (например, с использованием Selenium или Playwright) можно интегрировать сбор HAR через возможности браузера или сторонние библиотеки.

Анализ:

  • Визуальный анализ в браузере: Импортировать HAR файл обратно в раздел Network DevTools для удобного просмотра.
  • Специализированные инструменты и онлайн-сервисы: Например, HTTP Archive Viewer, HAR Analyzer.
  • Программный анализ: Для автоматизации можно использовать скрипты (Python, JavaScript) для парсинга JSON структуры HAR и извлечения нужных данных.
# Пример простого анализа HAR файла на Python для поиска медленных запросов
import json

with open('network_log.har', 'r') as file:
    har_data = json.load(file)

for entry in har_data['log']['entries']:
    request_url = entry['request']['url']
    total_time = entry['time']
    if total_time > 1000:  # Запросы длительнее 1 секунды
        print(f"Slow request: {request_url}, Time: {total_time}ms")

Практическое применение в работе QA

В моей практике использование HAR файлов неоднократно помогало решать сложные задачи:

  • Верификация API: Сравнение фактических запросов и ответов (из HAR) с ожидаемыми согласно спецификации API.
  • Анализ зависимостей третьих сторон: Определение, какие внешние скрипты или API (например, Google Analytics, рекламные сети) влияют на время загрузки.
  • Исследование инцидентов: При внезапном падении производительности сайта сбор HAR файла от пользователя (через инструкцию) позволял быстро локализовать проблему, например, обнаружить сбойный запрос к CDN или перегруженный микросервис.

Таким образом, HAR файл — это мощный и стандартизированный инструмент в арсенале QA Engineer, который превращает невидимый сетевой трафик в структурированные, проверяемые и анализируемые данные, существенно повышая эффективность отладки и тестирования веб-приложений.

Что такое HAR файл? | PrepBro