У меня есть один API для тестирования, и я хочу достичь 30K TPS с этим API.Может ли кто-нибудь объяснить мне полностью, как проверить это с помощью Jmeter? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть один API для тестирования, и я хочу достичь 30K TPS с этим API. Может ли кто-нибудь объяснить мне полностью, как проверить это с помощью Jmeter? Это может быть с 20, 40 или 60 пользователями, но я хочу добиться этого с помощью режима пользовательского интерфейса Jmeter?

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

JMeter GUI предназначен не для нагрузочного тестирования, а только для целей отладки плана тестирования.GUI очень ресурсоемкий и потребляет много памяти.Рекомендуется выполнить нагрузочное тестирование в режиме Non-GUI .

Когда вы запустите JMeter в режиме графического интерфейса, вы увидите следующее:

enter image description here

Поскольку 30K TPS слишком велико и для проверки этогоВы должны дать достаточное количество потоков.Чтобы рассчитать, сколько потоков вам нужно для этого теста, вам также необходимо знать максимальное время ответа API.

Вот формула для расчета номера потока:

TPS * max responseвремя в секунду

Например, если у вас есть время ответа 1 second, то для генерации 30K TPS вам нужно 30K threads.Если время отклика API составляет 500ms, то вам нужно как минимум 15K threads.

Чтобы сгенерировать эту высокую нагрузку, вам также нужно пройти Распределенное тестирование , потому что вы не сможете сгенерировать такую ​​высокую нагрузку с одного компьютера.Чтобы определить, сколько потоков вы можете сгенерировать на одной машине, вам также нужно проверить это самостоятельно.Постарайтесь постепенно увеличивать номер нити и следите за состоянием машины.Если он потребляет 70-80% здоровья вашей машины (процессор, память, диск), остановите тест и отметьте количество потоков.Теперь вы можете предположить, сколько компьютеров вам нужно для тестирования этого сценария.

Наконец, я предлагаю вам дважды проверить ваши требования к тестам, потому что 30K TPS (108000000 запросов в час) слишком высока!

Подробнее см. Рекомендации Apache JMeter .

0 голосов
/ 15 марта 2019

Ваш вопрос слишком широкий.

В любом случае, простой и прямой ответ заключается в том, что вы не сможете достичь этого в режиме пользовательского интерфейса, и вам может потребоваться несколько подчиненных. Если ваш API имеет SLA в 1 секунду, один поток, выполняющийся с шагом 1 секунда, приведет к 3600 транзакциям в час (1 TPS). Таким образом, вам потребуется 30 000 потоков в JMeter для достижения 30 000 TPS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...