Включают статические ресурсы, такие как изображения, css, js и т.д. в тестах

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

Есть одна вещь, о которой я не понимаю.

На домашней странице JMeter есть раздел "Лучшая практика" . Среди прочего, он говорит:

Самое главное - отфильтровать все запросы, которые вам не интересны. Например, нет смысла записывать запросы на изображение (JMeter может быть проинструктирован о загрузке всех изображений на странице - см. HTTP-запрос). Они просто загромождают ваш план тестирования.

Я видел это и на других страницах, говоря, что вы не должны включать запросы на изображения или любые другие статические ресурсы в свои тесты. Однако я все еще не смог найти ни одной страницы, которая дает хорошее объяснение, почему вы не включаете статические ресурсы.

Конечно, JMeter не браузер, но запросы на статические ресурсы, без сомнения, повлияют на производительность вашего приложения? Может кто-то, пожалуйста, дайте мне хорошее объяснение: -)

Ответ 1

Все зависит от того, что вы пытаетесь проверить.

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

Конкретные тесты почти всегда касаются динамических аспектов веб-приложения - серверного кода (.aspx,.php,.jsp и т.д.). Именно в этом случае большинство приложений имеют свои узкие места - усилия по работе на стороне сервера script во много раз превышают усилия по извлечению CSS файла с диска и отправке его в браузер без дополнительной обработки. Если я тестирую серверные сценарии, я не хочу также загружать активы - потому что они загромождают тесты и потребляют пропускную способность на конечном клиентском конце. Я не хочу, чтобы мои тесты терпели неудачу, потому что мой сервер JMeter загружает 5 МБ видеофайлов в каждом потоке и потребляет всю полосу пропускания, когда то, что я на самом деле пытаюсь сделать, - узнать, сколько логинов в секунду сервер может поддерживать.

Очень мало смысла в тестировании возможности вашего веб-сервера обслуживать статические файлы - Microsoft, команда Apache, кто бы ни занимался блестящей работой; если у вас нет особого беспокойства, есть лучшие способы потратить свой бюджет на тестирование.

Тесты с защитой безопасности объединяют все это, чтобы доказать, что все это действительно работает так, как я ожидаю. Обычно я запускаю их на производственной (вроде) среде, поэтому у меня есть CDN, аппаратное обеспечение производственного уровня и "живое" приложение. Обычно для этого я использую облачную службу тестирования, поэтому я могу видеть производительность в разных местах и ​​генерировать достаточную нагрузку для комплектации производственного класса. Вы можете использовать JMeter для этого (и есть несколько сервисов JMeter Cloud, которые я использовал в прошлом). Это дорого, это может потребовать простоев, и вы должны делать это только в качестве защитной сетки.

Ответ 2

Если вы хотите выполнить надлежащий тест производительности (особенно стресс-тест), когда вам нужно создать время отклика приложения в зависимости от количества пользователей/потоков во времени, вам необходимо включить все статические ресурсы, так же как и Прокси-сервер jMeter сохранил их при записи вашего теста.

Чтобы использовать учетную запись браузера, вы можете либо использовать HTTP Cache Manager, либо Once Only controller, так что каждый поток загружает только статический материал один раз, с их первым запросом.
HTTP Cache Manager - это рекомендуемый способ перехода и намного проще настроить, просто включите его в свой тест, как первый дочерний элемент группы потоков.
После того, как только Регулятор используется регулярно, когда вам нужно войти в систему только по первому запросу.

Рекомендуется указать параметризацию нестатических запросов HTTP, вы не будете, например. поиск того же наименования продукта или, например, покупайте ту же книгу каждый раз, что обычно является отправной точкой, которая может дать вам общее представление об эффективности работы вашего приложения.

Надеюсь, что это поможет...

Ответ 3

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

Кроме того, хотя статические ресурсы влияют на пропускную способность и общее время отклика для пользователя, они должны иметь небольшое влияние на нагрузку на сервер, и они могут быть не такими, которые вы хотите измерить.

Думаю, вам нужно попробовать подражать реальным реальным пользователям с приложением.