что такое har логи браузера
Инструкция по выведению логов в браузере
Зачем нужны логи? Информация в 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-инженеру не только собирать много информации о найденных багах, но и разобрать их техническую природу, что естественным образом ускорит процесс исправления. Подобные вещи, в свою очередь, моментально улучшают общий процесс создания и построения программного обеспечения. От этого в большей степени и зависит качество веб-продуктов.
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-файл – архів або лог мережевих запитів, журнал подій, за допомогою якого фахівці техпідтримки або розробники перевіряють мережеві запити браузера у момент виникнення проблеми. Також файл може бути призначений для збору даних, щоб поліпшити продуктивність та безпеку ресурсу.
Для глибшого розуміння давайте поглянемо на структуру файлу в HTTP архіві:
Розглянемо детальніше entries – це індивідуальні запити на сторінці, об’ємний файл із запитами get типу. Якщо переглянути цей файл, то можна побачити статус кодів HTTP, які проінформують про результати запитів.
Так як присутній дуже великий масив даних, а точніше 5000 рядків у форматі json, за допомогою HAR файлу можна повністю реконструювати дії на сторінці і зрозуміти причину помилки.
Чому json? Все просто – більшість мов програмування мають гарну бібліотеку обміну текстовими даними json.
Перелік популярних браузерів:
Процес зняття логів на Windows у різних браузерах
Створення HTTP архіву в Google Chrome
Когда клиенты — твои коллеги. Оптимизация веб-производительности внутренних систем
Как-то раз у меня был занятный разговор со службой поддержки Департамента международной торговли (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, которые можно использовать для самостоятельного измерения производительности сайта, без использования библиотек.
Как просмотреть / воспроизвести файл har сетевого отладчика chrome, сохраненный с содержимым?
Мне нравится сетевой отладчик, что, как говорится, какие программы Там, которые позволяют мне шаг вперед и назад через несколько «ХАРС», чтобы я мог их воспроизвести? если «Хары»сохраняются с содержимым, может ли воспроизведение справиться с этим?
прямо сейчас я просто прочитал в textpad, но если мне придется представить какие-либо из моих выводов, хороший «har-плеер» может очень помочь нетехническим людям.
7 ответов
существует har Viewer, разработанный Яном Одварко, который вы можете использовать. Вы либо используете онлайн-версию по адресу
есть несколько онлайн, оффлайн инструментов, как это сделать:
но тот, который мне понравился больше всего, это расширение для браузера (пробовал в chrome, надеюсь, он работает в других браузерах). После установки, он появляется в приложения as Хар просмотра. Затем вы можете загрузить файл HAR и увидеть что-то вроде это:
инструмент «сеть» Chrome Dev Tool теперь позволяет импортировать файлы HAR путем перетаскивания в окно.
самый надежный способ воспроизведения файла har с помощью бесплатного инструмента, как Саша, инструмент всегда свободен и может быть быстро загружен. Сайты для открытия файла har все багги и не могут открывать большие файлы. Fiddler доступен для всех платформ.
выберите опция «HTTPArchive»
перейдите к файлу HAR
файл HAR откроется и будет воспроизводиться в окне fiddler.
Edit: Harhar теперь с открытым исходным кодом. Я обновил URL-адрес ниже.
Если вы используете генератор лавинной нагрузки, вы можете использовать Harhar для воспроизведения файла HAR при очень высокой нагрузке:https://acastaner.github.io/harhar/
этот инструмент обрабатывает «контент», который вы используете, когда вы » сохраняете как HAR с контентом.»