русском - Существует разность времени ответа Jmeter между результатами выполнения Jmeter и ручным захватом времени отклика




jmeter результаты (2)

Существует разница времени ответа Jmeter между результатами выполнения Jmeter и вручную регистрируется время отклика от локальной системы с использованием секундомера в веб-приложении.

  1. Просмотрите веб-приложение из локальной системы Windows и используйте секундомер, чтобы увидеть время ответа для загрузки страницы.
  2. Запустите Jmeter в режиме non-gui / gui и наблюдайте время отклика (используется Listeners только для отладки, при запуске скрипта не было добавлено прослушивание)
  3. Можно видеть, что есть разница в обоих. Пожалуйста, подскажите, как узнать, зафиксировал ли Jmeter правильное время ответа.

JMeter имеет три основных измерения, которые он фиксирует по запросу:

  • Истекшее время (общее время от точки, когда он только начинает отправлять запрос на полученный последний бит)

  • Задержка (начинается тот же момент времени и заканчивается, когда сервер начинает отвечать)

  • И время подключения (которое включено в латентность и в основном время для рукопожатий с сервером, включая переговоры SSL / TLS)

Поэтому, если вы устанавливаете устройство записи данных среди своих слушателей (например, SimpleDataWriter, хотя AggregateReport & SummaryReport также может это сделать), вы увидите эти показатели в вашем файле данных (в то время как стандартные слушатели / визуализаторы / агрегаторы застряли только с истекшим временем).

Но помните, что эти показатели не включают в себя рендеринг ответа и особенно любой код, который должен выполняться браузером.

JMeter просто этого не делает: очевидно, он измеряет только общую производительность Server + Network, пропуская все на стороне клиента (за исключением простых потребностей, таких как переговоры по протоколу).

Это может объяснить разницу, с которой вы столкнулись.

Также как разница между временем обработки журнала и временем ответа, измеренным JMeter: сервер просто не учитывает, что приводит в сеть.

PS И вам не нужно сидеть и нажимать на секундомер с вашим браузером: у современных есть инструменты Dev, способные показывать вам тайминги точности, разделенные по этапам. Например, просто вызовите Ctrl + Shift + I в Chrome, переключитесь на вкладку в сети и посмотрите время, когда вы делаете свои запросы.


Учитывая правильную настройку JMeter, вы должны получить то же или подобное время отклика для одного и того же запроса. «Правильная» конфигурация означает:

  1. Вы должны настроить JMeter для извлечения встроенных ресурсов и использовать параллельный пул потоков из ~ 5 потоков для этого

    Эти параметры «сообщают» JMeter об извлечении изображений, стилей и сценариев, ссылающихся на главную страницу HTML, и делают это параллельно, как это делают настоящие браузеры

  2. Добавьте диспетчер кэша HTTP в свой план тестирования . Реальные браузеры загружают встроенные ресурсы, но делают это только один раз, при последующих запросах ресурсы возвращаются из дискового кэша, фактический запрос не выполняется. HTTP Cache Manager позволяет управлять имитацией кеша и обработкой заголовков кеша.
  3. Добавить HTTP Cookie Manager для представления файлов cookie / сеансов и проверки подлинности на основе файлов cookie.
  4. Добавьте диспетчер заголовков HTTP в свой план тестирования для представления заголовков браузера. Это может быть важно, так как отсутствующий заголовок Accept-Encoding может отключить сжатие на стороне сервера, поэтому клиент получит гораздо больше данных, и потребуется больше времени.
  5. Предполагая, что «хорошая» конфигурация JMeter вы должны увидеть более или менее такое же поведение

    Если есть еще различия - захватите запросы, отправленные JMeter и браузером, используя инструмент sniffer, например Wireshark, и измените конфигурацию JMeter, чтобы устранить различия