Каково влияние кода ответа 400,503? Можем ли мы игнорировать эти коды, если моя основная задача — измерить время загрузки веб-приложения?

#jmeter

#jmeter

Вопрос:

Я тестирую время загрузки страницы входа в веб-приложение с 300 пользователями потока и период нарастания в 300 секунд.Большинство моих образцов возвращают код ответа 200.Но немногие из них возвращают код ответа 400,503. Моя цель — просто проверить производительность веб-приложения, если им начнут пользоваться 300 пользователей. Я новичок в Jmeter и обладаю базовыми знаниями в программировании. Мой вопрос: — 1. Могу ли я игнорировать эти ошибки и сосредоточиться только на таймингах из сводного отчета? 2. Если мне действительно нужно исправить эти ошибки, как это исправить?

Ответ №1:

Эти ошибки указывают на две разные проблемы:

  1. HTTP Status 400 расшифровывается как Bad Request — это означает, что вы отправляете неверно оформленные запросы, которые не могут быть поняты сервером. Вам следует проверить детали запроса и изменить конфигурацию JMeter, поскольку это проблема в вашем скрипте.
  2. HTTP Status 503 означает Service Unavailable — это указывает на проблему на стороне сервера, т. Е. сервер не способен обрабатывать создаваемую вами нагрузку. Это то, о чем вы уже можете сообщить как о проблеме с приложением. Вы можете попытаться определить основную причину с помощью:

    • просмотр файлов журнала вашего приложения
    • проверка того, достаточно ли у вашего приложения свободного пространства для работы с точки зрения процессора, оперативной памяти, сети, диска и т.д. Это можно сделать с помощью APM tool или плагина JMeter PerfMon
    • повторный запуск вашего теста с помощью телеметрии profiler tool, чтобы глубоко погрузиться в то, что скрывается за самым длительным временем отклика

Итак, прежде всего, вы должны убедиться, что ваш тест выполняет то, что он должен делать, запустив его с 1-2 пользователями / циклами и проверив детали запросов / ответов. На этом этапе у вас не должно быть никаких ошибок.

В дальнейшем вам следует постепенно увеличивать нагрузку и соотносить увеличение числа виртуальных пользователей с увеличением времени отклика / количества ошибок
`

Ответ №2:

Тестирование производительности отличается от нагрузочного тестирования. То, что вы делаете, — это нагрузочное тестирование.

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

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

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

При переходе к загрузке я запускаю серию нагрузочных тестов с увеличением числа пользователей / потоков и фиксирую результаты каждого теста.

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

Я бы также хотел запустить тесты soak. В этом случае я бы запускал JMeter в течение длительного периода с типичной (не пиковой) нагрузкой, чтобы убедиться, что система может выдерживать постоянную нагрузку.

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