Что такое har логи браузера
Что такое файл HAR? Как создать или открыть файлы HAR?
HAR файл — это формат файла архива JSON, в котором хранятся данные просмотра в нескольких браузерах. Он работает, сохраняя сеанс данных между клиентом и сервером. Другими словами, файл HAR используется для сохранения всех веб-запросов, сделанных в браузере. Чаще всего файл используется для анализа и поиска уязвимостей.
HAR расширяется как Формат HTTP-архива и может быть классифицирован как формат файла архива JSON. Разработчики и исследователи безопасности используют этот файл для обнаружения ошибок и уязвимостей. Кроме того, файл HAR упрощает решение проблем с производительностью веб-сайта в нескольких браузерах. Он включает HTTP-ответ и заголовки запроса. Файл HAR имеет расширение «.har».
Производительность веб-сайта очень важна по многим причинам. Чаще всего веб-сайты страдают от низкой скорости загрузки, медленного процесса рендеринга страниц и потребления чрезмерных вычислительных ресурсов. В таких случаях можно создать файл HAR и проанализировать его. Таким образом администратор сайта может исправить проблемы с производительностью веб-сайта и обеспечить оптимальную производительность.
Как открыть файлы HAR?
Пользователи могут создавать и открывать файлы HAR в Google Chrome, Firefox или любом другом браузере. Все, что вам нужно сделать, это выполнить несколько простых шагов. Обратите внимание, что файл HAR специфичен для каждого URL.
Создать файл HAR в браузере Google Chrome
Как создать файл HAR в Firefox?
Мы надеемся, что вы смогли сгенерировать и сохранить файлы HAR для отладки и других целей. Кроме того, вы можете использовать анализатор HAR от Google для захвата сеанса HTTP и его анализа на предмет ошибок и других проблем.
HAR-файл и MTR-диагностика сети
Специалист службы поддержки может попросить записать вас журнал сетевых запросов браузера во время возникновения проблемы и предоставить его для дальнейшего анализа. Этот журнал запросов браузера сохраняется в специальный HAR-файл. Также полезным будет предоставить данные расширенной диагностики сети специальной программой MTR. Данные из HAR-файла и файла лога MTR значительно ускорят выявление проблем с вашим Битрикс24.
Создание HAR-файла
HAR-файл представляет собой архив, который содержит подробности сеанса взаимодействия вашего браузера и вашего Битрикс24. Ниже даны инструкции, как создать HAR-файл, для различных браузеров.
Открыть меню браузера 1 и выбрать Дополнительные инструменты 2 > Инструменты разработчика 3 (Windows: Ctrl + Shift + I или maсOS: Cmd + Opt + I):
Перейти на вкладку Network 4 в инструментах разработчика.
Повторить действия, которые приводят к ошибке, или, например, обновить страницу.
Открыть меню браузера 1 и выбрать Веб-разработка 2 > Сеть 3 (Windows: Ctrl + Shift + E или maсOS: Cmd + Opt + E):
Повторить действия, которые приводят к ошибке, или, например, обновить страницу.
Открыть меню браузера 1 и выбрать Средства разработчика F12 2 :
Перейти на вкладку Сеть 3 в инструментах разработчика.
Повторить действия, которые приводят к ошибке, или, например, обновить страницу.
Открыть меню браузера 1 и выбрать Другие инструменты 2 > Средства разработчика 3 (Windows: Ctrl + Shift + I или maсOS: Cmd + Opt + I):
Перейти на вкладку Сеть 4 в инструментах разработчика.
Повторить действия, которые приводят к ошибке, или, например, обновить страницу.
В меню браузера выбрать Разработка 1 > Подключить веб-инспектор 2 (Cmd + Opt + Shift + I):
Перейти на вкладку Сеть 3 в инструментах разработчика.
Повторить действия, которые приводят к ошибке, или, например, обновить страницу.
MTR-диагностика сети
Утилита MTR объединяет и расширяет функциональность программ traceroute и ping для диагностики качества сети.
Скачайте программу WinMTR (zip, 1,8Мб, только Windows), распакуйте архив и запустите файл WinMTR.exe (возможно, понадобятся права администратора компьютера).
Например, для адреса Битрикс24 – test6.bitrix24.ru (у вас будет свой адрес Битрикс24!):
Спустя 2-3 минуты работы программы нажмите кнопку Stop 3 и сохраните результат в файл – Export TEXT 4 :
Теперь у вас есть HAR-файл с сетевым логом браузера и файл диагностики сети MTR – их можно предоставить специалисту Поддержки Битрикс24.
Инструкция по выведению логов в браузере
Зачем нужны логи? Информация в HAR
По своей технической структуре, логи очень сильно помогают программистам и порой тестировщикам понять, что конкретно означает та или иная ошибка, а также какова ее природа. Первоначальное предназначение логов – процесс протоколирования операций для последующего анализа системным администратором, текущее диагностирование системной активности, а также процедура сбора статистики.
Понятие HAR-файлов
HAR-файлы – это определенный архив или лог многочисленных сетевых запросов, своеобразный журнал событий, на основе которого специалисты технической поддержки или программисты могут проверить сетевые запросы веб-браузера в момент технической проблемы.
Также подобный файл может использоваться для сбора информации, чтобы максимально улучшить производительность и сохранность данных в нем.
Чтобы лучше понять все вышеизложенное, необходимо детально ознакомиться со структурой HAR-файлов в классическом HTTP архиве:
Из-за того, что всегда присутствует очень большой массив данных (а именно не менее 5000 строк в конкретном формате json), на основе HAR-файла разработчики могут запросто реконструировать определенные действия на веб-странице и понять причину неисправности ПО.
Можно задаться вопросом, почему именно json? На самом деле, все очень просто – больше половины современных языков программирования имеют отличную библиотеку обмена тестовыми информационными блоками json.
В реальности может возникнуть ситуация, когда в тестовом файле (видео) ошибка видна, но на стороне программиста все отлично. Следовательно, он не может конкретно понять, в чем именно баг. В подобных ситуациях, полезным как раз и будет HTTP-архив.
Процесс снятия логов: наглядный пример
1. Создание HTTP-архива в браузере Chrome
Переходим на страницу с проблемой. В меню находим вкладку Дополнительные инструменты > Инструменты разработчика > Сеть (network).
Вкладка Network в браузере
Как видно, запись запроса по умолчанию отключена (это можно определить по серому цвету иконки). Ставим галочку на поле Preserve log.
Ставим галочку на поле Preserve log
Нажимаем на кнопку F5 или Ctrl+R для выполнения перезагрузки страницы.
Теперь мы легко можем реконструировать процесс получения ошибки для последующего ее исправления.
Дальше необходимо нажать правой кнопкой мыши на окно запросов и выбрать соответствующий параметр Save as HAR with Content.
Выбираем параметр Save as HAR with Content
Подобный файл теперь можно просто добавить к найденному багу на просторах проверяемого ресурса.
Кроме того, может возникнуть вопрос, а как же просмотреть подобный файл? В сети есть масса инструментов для подобных целей, но также можно банально перетащить такой файл с места его хранения на «площадь» веб-браузера.
Перетаскиваем файл в браузер
2. Создание HTTP-архива в браузере Mozilla Firefox
Первые 2 шага аналогичны тем, что пользователи выполняют в браузере Google Chrome: открываем меню Веб-разработка > Инструменты разработчика > Сеть. Или одновременное нажатие на клавиши Ctrl+Shift+I.
Открываем вкладку Сеть в инструментах разработчика
Выполняем перезагрузку страницы.
Воспроизводим текущую проблему.
Выбираем опцию «Сохранить все как HAR».
Выбираем опцию «Сохранить все как HAR»
Все. Теперь пользователь может спокойно знакомиться с содержанием нужного HAR-файла, в котором потенциально могут храниться баги и дефекты.
По факту, для браузеров Microsoft Edge, Safari и Яндекс Браузер подобные операции выполняются по схожему сценарию и с той же последовательностью.
Краткие итоги
Владение определенными навыками снимать логи в различных веб-браузерах позволяет программисту и иногда QA-инженеру не только собирать много информации о найденных багах, но и разобрать их техническую природу, что естественным образом ускорит процесс исправления. Подобные вещи, в свою очередь, моментально улучшают общий процесс создания и построения программного обеспечения. От этого в большей степени и зависит качество веб-продуктов.
Мое путешествие к анализу производительности 2/2 (файлы HAR)
Дата публикации Feb 19, 2019
Эта статья должна объяснить в основном второй тип анализа производительности, который я недавно выполнил. Это продолжение этогостатья,
Эта статья посвящена в основном анализу файлов HAR и типу KPI, который вы можете извлечь из них.
Что такое файлы HAR?
ПослеW3C GitHubpost, HAR расшифровывается как HTTP Archive Format. Это формат файла архива в формате JSON для регистрации взаимодействия веб-браузера с сайтом. Общее расширение для этих файлов.har,
Это кажется интересным, но что это на самом деле охватывает?
Он охватывает довольно длинный вид метрик и информации, и этот формат все еще находится в стадии разработки. Так что он может развиваться в будущем, и мой список не будет исчерпывающим и / или охватывающим информацию, которая устарела из файлов HAR.
Вы можете подумать об этом сейчас: «Это начинает выглядеть как очень интересная информация сейчас! Почему вы вообще не удосужились использовать сканер производительности stup * d? Я потратил 10 миллионов своей жизни, читая эту статью! »
Хорошо, это достаточно справедливо… проблема с извлечением файлов HAR заключается в том, что это не так просто, как информация, которую мы получаем с помощью консоли javascript performance.getEntries ().
Как получить анализ файла HAR
Вы можете прочитать эту хорошую статью от box.com оПоколение HAR,
Если вы хотите генерировать такую же информацию с помощью сканера, вам нужно использовать технику «человек посередине» для генерации этих файлов.
В 2015–2016 гг. Это было бы не так уж и сложно, но теперь, когда все веб-сайты используют HTTPS, вам потребуется сгенерировать сертификат для своего браузера, чтобы ваш посредник имел полномочия на сбор и расшифровку этой информации.
Как вы можете себе представить сейчас, не так просто реализовать это автоматически.
Не невозможно, хотя, но если мне удастся понять (что является моим планом), просто использование модуля, который я бы создал, потребует некоторой конфигурации, которая не подходит для начинающих других пользователей.
Давайте отложим создание этого модуля и используем поиск старой доброй руки в браузере. 😉
Записи объекта
Ранее я объяснил, что массив Entries, вложенный в объект log, действительно интересует нас для оценки производительности.
Наиболее интересная информация, доступная из объекта записей, следующая (полный списокВот):
В нашем случае есть 2 основные проблемы:
Ярлыки анализа (модуль Гарпия)
Этот новый модуль доступен в моей учетной записи на github и называется «гарпия». Да, как мифологическое существо, но и потому, что этоHAR pyанализатор Понял сейчас;)
Это в моей папке других скриптов:https://github.com/pitchmuc/other_scripts
Я, скорее всего, сделаю пост в блоге, который объяснит методы.
Анализ данных HAR
Итак, вы запустили модуль гарпии в своей папке, и он создал файл «.csv».
Давайте посмотрим, что внутри и как интерпретировать данные.
это должно дать вам что-то вроде этого:
Глядя на колонку, у нас есть обширный список здесь.
Модуль гарпии, который я создал, пытается собрать как можно больше данных в этом фрейме данных.
Если вы знакомы со словарем веб-соединения, вы не должны потеряться здесь.
Здесь мы можем начать с использования обзорных данных от Pandas.
Этот метод очень важен, когда вы работаете с большим набором данных и хотите посмотреть, что здесь происходит.
Как видите, мы быстро определили, что bodySize в отправленном нами запросе отсутствует. Большая часть информации отправляется Заголовком. Средний размер ответа составляет 3094 байта, но стандартное отклонение составляет 2592.
Это означает, что существует большая разница в responseSize для запроса.
Это подтверждается минимальным и третьим квартилем (474 и 3705).
Данные предоставят вам номер запроса, который отправляется каждой страницей, вам просто нужно взглянуть на столбец «nb_entries»
Добавление столбца больше, чтобы визуально увидеть, есть ли корреляция.
Вы также можете напрямую запросить статус корреляции в ваших 2 столбцах:
Чтобы иметь представление о распределении серии, вы также можете использовать коробочный сюжет.
Давайте посмотрим, что это за крайняя точка на графе.
Я надеюсь, что эта статья покажет вам, что вы можете сделать, анализируя эффективность своих страниц.
Как вы могли заметить, данные не совпадают с данными, которые мы получаем при использовании сканера, который я описал в своем первом посте в блоге об анализе производительности.
Таким образом, оба подхода могут быть взаимодополняющими, если вам нужны дополнительные данные для подтверждения вашей гипотезы.
Когда клиенты — твои коллеги. Оптимизация веб-производительности внутренних систем
Как-то раз у меня был занятный разговор со службой поддержки Департамента международной торговли (DIT). Они хотели повысить производительность одного из своих веб-приложений. Подобные разговоры — это то, что мне больше всего нравится на моей текущей позиции. Я общаюсь на темы, которые мне интересны, знакомлюсь с новыми людьми, рассказываю им про возможности, о которых они могут не знать, например, как улучшить UX приложения.
Если честно, я немного расстроился, когда мне сообщили, что этот сервис предназначен для внутреннего использования и закрыт для общего доступа. Это означало, что мои обычные goto tools для оценки веб-производительности были недоступны. А именно:
Самое важное условие для быстрых внутренних систем
Как мы все знаем, мир значительно изменился из-за глобальной пандемии. Из-за повсеместных локдаунов все, у кого была такая возможность, начали работать из дома. Это значительно повлияло на производительность Интернета во всем мире и привело к высокому трафику и увеличению времени загрузки. Из-за этого все инструменты, которые необходимы сотрудникам для выполнении своей работы, должны быстро загружаться, а также быть интерактивными.
Раньше подобных проблем с производительностью не возникало, так как внутренние пользователи работали из офиса и использовали локальную сеть (LAN). Проблема усугубляется тем, что многие живут в небольших городах с медленным и нестабильными Интернетом. Или, наоборот, в крупных городах с высоким коэффициентом конкуренции (contention ratio). Поскольку мы говорим о внутренних системах, чаще всего сотрудникам нужно использовать VPN, чтобы войти в офисную сеть. Но это тоже не очень удобно: VPN чаще всего снижает скорость Интернета.
Важно не забывать, что сотрудники — тоже пользователи. Поэтому убедитесь, что вы оптимизируете и свои внутренние системы, так как низкая производительность веб-приложений отрицательно влияет на работу сотрудников. Какие инструменты использовать, если внутренние системы, как правило, приватные? Об этом и поговорим далее.
WebPageTest
Первое, что хотелось бы прояснить: когда тестируете внутренние системы, использовать открытую версию WebPageTest не получится. Но зато вы можете установить приватную. Благодаря этому, можно будет использовать ее во внутренней сети.
После запуска откроется доступ к огромному объему данных для всех внутренних систем. Не забудьте прочитать гайд, чтобы получить как можно больше информации из WebPageTest. Настройка собственной версии не так сложна, как кажется. Есть несколько отличных руководств, как самостоятельно ее настроить на AWS за пару минут:
Lighthouse
Следующий goto инструмент, скорее всего, у вас уже есть, — это Lighthouse от Google. Если вы установили копию Google Chrome на компьютер, то использовать Lighthouse для аудита внутренней системы очень просто:
Во вкладке DevTools найдите «Lighthouse» и нажмите «Generate report».
Спустя минуту после запуска, аудит вернет результат, как показано на картинке выше. Настоятельно рекомендую настроить новый профиль Chrome специально для тестирования Lighthouse, поскольку расширения браузера могут негативно повлиять на производительность (зависит от того, что именно они делают на странице).
Но Lighthouse — это не только панель аудита. Ниже несколько вариантов, как еще можно использовать этот инструмент:
Вы можете запустить Lighthouse, используя Command line interface (CLI)
Можно легко запустить Lighthouse на всех страницах сайта.
Сравнить производительность “до” и “после” с помощью Lighthouse CI Diff
Автоматически запускать Lighthouse через равные промежутки времени на нескольких сайтах через запуск тестов.
Добавить собственный аудит для мониторинга определенных частей сайта
Sitespeed.io
С помощью sitespeed.io можно непрерывно отслеживать столько страниц, сколько вам нужно, отправляя данные в Graphite / Grafana, чтобы получить подобные дашборды. По сути, Sitespeed.io представляет собой cледующий набор инструментов:
DevTools в Chrome
Во всех современных браузерах уже есть встроенные инструменты для разработчика. Мы прошли долгий путь со времен Firebug в Firefox. Что немаловажно, DevTools становятся мощнее с каждой новой версией браузера. Это удобно и для разработчиков, и для юзеров, ведь на сайтах должно быть меньше багов, не так ли? Ха!
На изображении выше показана детальная информация, которую может предоставить аудит о производительности веб-страницы (вкладка Perfomance). Но Chrome DevTools, помимо вкладки измерения производительности, имеет много других функций:
DevTools в Firefox
Существуют и другие браузеры, которые с помощью DevTools могут помочь в оценке проблем с производительностью. Я пользователь Firefox, поэтому регулярно применяю инструменты этого браузера. В Firefox также есть полный набор вкладок, которые можно использовать для поиска проблем на сайте:
Вы можете использовать эти инструменты для:
Библиотеки для расширения данных аналитики
Это может не сработать с внутренними инструментами, но если вы отслеживаете их использование с помощью аналитики (например, Google Analytics, Fathom, Matomo), то можно расширить собираемые данные, включив в них более полную информацию о веб-производительности.
Несколько библиотек, которые можно использовать:
Аналитика JavaScript
Тема этой статьи не затрагивает JavaScript во внутренних системах, хотя я считаю, что минимизация его использования может улучшить веб-производительность и общую устойчивость. Но если вы все-таки используете JavaScript, постарайтесь его максимально оптимизировать.
К счастью, для этого есть много инструментов:
CSS анализ
Помимо вкладки Coverage, упомянутой ранее в DevTools Chrome, есть также инструменты, которые вы можете запускать через интерфейс командной строки (CLI). Они будут анализировать CSS, учитывая его сложность, а также выявлять неиспользуемые селекторы на всем веб-сайте:
Измерение производительности сервера
Золотое правило производительности гласит, что: 80-90% времени пользователь проводит на фронтенде.
По-прежнему рекомендуется убедиться, что бэкенд / сервер оптимизированы. В конце концов, “Time to First Byte matters”.
Также важно удостовериться, что сервер сможет продолжать работать при большой нагрузке, если это когда-либо произойдет. Существует ряд инструментов, которые помогут вам сделать обе эти вещи:
Автоматизация с помощью Puppeteer
Puppeteer — это библиотека Node, которая предоставляет высокоуровневый API для управления Chrome или Chromium по протоколу DevTools. Большинство вещей, которые вы делаете вручную в браузере, можно воспроизвести с помощью Puppeteer. Как это можно использовать для тестирования производительности в Интернете? Адди Османи написал в блоге об использовании Pupperteer для веб-тестирования производительности, а также поделился кодом на Github. Эти тесты можно легко запустить через интерфейс командной строки для тестирования как внутренних, так и внешних веб-сайтов:
Расширения для браузера
Существует много расширений браузера, которые можно использовать для оценки веб-производительности. Я бы рекомендовал использовать отдельный профиль с минимальным количеством включенных расширений, когда вы их запускаете. Это связано с тем, что некоторые расширения браузера взаимодействуют со страницей и могут снизить производительность, что приводит к неверным результатам. Вы можете использовать следующие расширения:
Network Throttling
Троттлинг сети — это способ замедлить сетевое соединение. Важно понимать, что у многих пользователей не будет быстрого и стабильного широкополосного подключения в большом городе. Другие, наоборот, могут находиться в сельской местности с плохой широкополосной связью и очень слабым сигналом мобильной связи. Регулируя собственное сетевое соединение, вы получаете представление о производительности сайта для пользователей в этих конкретных сетевых условиях.
Вы можете спросить: «Зачем мне блокировать мою сеть, если это встроено в DevTools Chrome?». Важно понимать, что не все методы регулирования сети работают одинаково. При регулировании с помощью Chrome DevTools применяется задержка на уровне браузера при получении каждого ответа. Lighthouse запускает тест на полной скорости, а затем моделирует скорость соединения, жертвуя точностью ради скорости сообщения. Следующие инструменты намного точнее. Они используют регулирование сети на уровне ОС, которое работает на гораздо более низком уровне.
Примечание: эти инструменты ниже регулируют соединение на всем компьютере, поэтому убедитесь, что вы закрыли ненужные приложения при тестировании, а также отключите троттлинг после завершения!
Анализ файлов HAR
Я упоминал файлы формата HTTP Archive (HAR) ранее в этом статье. Эти файлы позволяют зафиксировать сетевое взаимодействие веб-браузеров с веб-сайтом. Самое замечательное в этих файлах то, что вы можете использовать их для любого сайта, на который можно попасть через браузер (внутренний или внешний). Найти их довольно просто в инструментах разработчика Firefox и Chrome:
Firefox
Chrome
Есть и другие инструменты, которые вы можете использовать для просмотра и анализа:
Web APIs
Вернемся к нативным возможностям браузера браузера, есть несколько API, которые можно использовать для самостоятельного измерения производительности сайта, без использования библиотек.