browsermob har точность файла
Я использую browsermob с selenium для создания файла har, а затем пытаюсь проанализировать файл. Просматривая файл, я получаю синхронизацию, например: 'beginDateTime': '2016-05-31T14:37:06.752-06:00' Это здорово, но все, но я бы хотел получить большую точность, если возможно, с точностью до микросекунды.
В файле har из инструментов разработки Google Chrome я вижу, что это по крайней мере возможно.
Есть ли настройка в broswermob или селене, которую я могу установить, чтобы получить дополнительную точность или другой способ получить эту дополнительную точность?
1 ответ
В спецификации HAR указано значение beginDateTime объекта pages
а также entries
объекты как:
startDateTime [строка] - метка даты и времени начала запроса (ISO 8601 - YYYY-MM-DDThh:mm:ss.sTZD).
ss.s
часть немного двусмысленна, но примеры, приведенные в спецификации, доходят только до тысячных долей секунды. Таким образом, BrowserMob Proxy создает записи с тысячными долями, чтобы избежать взлома читателей HAR.
Точность, превышающая миллисекунды, вероятно, привнесет много дополнительного шума в тайминги. Различия в наносекундах могут быть вызваны всевозможными вещами (такими как планирование ЦП), не связанными с "фактической" производительностью HTTP-запроса. Конечно, это происходит и с миллисекундами, но чем точнее вы получаете, тем менее точными являются значения времени.
В конечном счете, что действительно указано на элементе StartDateTime, это время, когда системные часы сообщили некоторому потоку ЦП, порожденному BMP, который запускается через некоторое неопределенное время после того, как последний пакет HTTP-запроса был получен сетевым интерфейсом, обработан ОС и обработан. JVM и декодируется netty, что происходит асинхронно без временных гарантий. Это следует принимать только как "разумно" близкое приближение. FWIW, это единственная гарантия, которую может дать Chrome.