#jmeter
#jmeter
Вопрос:
Я тестирую время загрузки страницы входа в веб-приложение с 300 пользователями потока и период нарастания в 300 секунд.Большинство моих образцов возвращают код ответа 200.Но немногие из них возвращают код ответа 400,503. Моя цель — просто проверить производительность веб-приложения, если им начнут пользоваться 300 пользователей. Я новичок в Jmeter и обладаю базовыми знаниями в программировании. Мой вопрос: — 1. Могу ли я игнорировать эти ошибки и сосредоточиться только на таймингах из сводного отчета? 2. Если мне действительно нужно исправить эти ошибки, как это исправить?
Ответ №1:
Эти ошибки указывают на две разные проблемы:
- HTTP Status 400 расшифровывается как
Bad Request
— это означает, что вы отправляете неверно оформленные запросы, которые не могут быть поняты сервером. Вам следует проверить детали запроса и изменить конфигурацию JMeter, поскольку это проблема в вашем скрипте. -
HTTP Status 503 означает
Service Unavailable
— это указывает на проблему на стороне сервера, т. Е. сервер не способен обрабатывать создаваемую вами нагрузку. Это то, о чем вы уже можете сообщить как о проблеме с приложением. Вы можете попытаться определить основную причину с помощью:- просмотр файлов журнала вашего приложения
- проверка того, достаточно ли у вашего приложения свободного пространства для работы с точки зрения процессора, оперативной памяти, сети, диска и т.д. Это можно сделать с помощью APM tool или плагина JMeter PerfMon
- повторный запуск вашего теста с помощью телеметрии profiler tool, чтобы глубоко погрузиться в то, что скрывается за самым длительным временем отклика
Итак, прежде всего, вы должны убедиться, что ваш тест выполняет то, что он должен делать, запустив его с 1-2 пользователями / циклами и проверив детали запросов / ответов. На этом этапе у вас не должно быть никаких ошибок.
В дальнейшем вам следует постепенно увеличивать нагрузку и соотносить увеличение числа виртуальных пользователей с увеличением времени отклика / количества ошибок
`
Ответ №2:
Тестирование производительности отличается от нагрузочного тестирования. То, что вы делаете, — это нагрузочное тестирование.
Тестирование производительности — это больше о том, как быстро выполняется действие. Обычно я фиксирую производительность системы, не находящейся под нагрузкой, для данного действия.
Это дает базовую линию, на которую я затем могу ссылаться во время нагрузочных тестов.
Надеюсь, вам были предоставлены некоторые показатели производительности для тестирования. Например. должен быть способен обрабатывать 300 запросов за две минуты.
При переходе к загрузке я запускаю серию нагрузочных тестов с увеличением числа пользователей / потоков и фиксирую результаты каждого теста.
Вооружившись этим, я вижу, как загрузка снижает производительность до такой степени, что начинают появляться ошибки. Это дает вам представление о том, какую типичную нагрузку может выдержать система.
Я бы также хотел запустить тесты soak. В этом случае я бы запускал JMeter в течение длительного периода с типичной (не пиковой) нагрузкой, чтобы убедиться, что система может выдерживать постоянную нагрузку.
Что касается ошибок, которые вы видите, нет, я бы не стал их игнорировать. Предполагая, что ваш тест вызывает ту же конечную точку, можно с уверенностью сказать, что код в порядке, его инфраструктура борется с нагрузкой, которую вы на нее бросаете.