Мы пытаемся провести стресс-тестирование нашей системы с помощью Jmeter и столкнулись с непостоянной пропускной способностью, поэтому мы установили плагин Jmeter Concurrency Thread Group с Таймером формирования пропускной способности. В настоящее время мы запускаем его на одной конечной точке, чтобы обеспечить стабильную пропускную способность. мы устанавливаем:
tstFeedback
как tstFeedback(tst,13,50,10)
, поскольку максимальное время отклика составляло около 1000мы изначально достигли ожидаемого RPS, каждый раз, когда мы пытались выполнить тест, он приближался к 30 RPS:
Однако через пару часов без изменений в конфигурации или системе число запросов в секунду больше не достигало ожидаемого, и мы постоянно получали более низкие значения числа запросов в секунду (в диапазоне от 20 до 27 запросов в секунду):
Мы попытались увеличить Target Concurrency, но это не повлияло на количество запросов в секунду, и оно постоянно было меньше ожидаемого. Мы попытались сделать это, используя GUI и CLI с локального компьютера и CLI на удаленном экземпляре с установленным Jmeter, мы запускаем последнюю версию Jmeter (на данный момент 5.5) локально и на удаленном экземпляре, но это не имеет значения:
Увеличение HEAP также не имело значения
Когда мы увеличили уровень ведения журнала на локальном компьютере для диагностики проблемы, эта ошибка часто появлялась:
o.a.j.p.h.s.HTTPHC4Impl: IOException
java.net.SocketException: Socket closed
Нам необходимо как можно точнее имитировать поведение наших клиентов, поэтому очень важно, чтобы мы могли достичь постоянной пропускной способности в наших запросах. Как мы можем сделать это?
Что нужно проверить:
Я просматривал эту статью: blazemeter.com/blog/jmeter-vs-locust вы бы порекомендовали locus вместо JMeter для нашего конкретного случая использования?
Проблема не в генераторе нагрузки, проблема в вашем приложении. Если хотите мое личное мнение - я не думаю, что Locust - хороший инструмент для нагрузочного тестирования веб-приложений, он довольно далек от имитации реального пользователя с реальным браузером, для API - может быть, но не для веба .
попробуйте вместо этого использовать locust.io