Search code examples
jmeterload-testingyandex-tank

How to get high rps with JMeter load testing https endpoint


I'm trying to test my https endpoint with JMeter. I want to make at least 10000 requests per second, but when I set the number of threads to 10000 I get way less rps, around 500.

I've tried setting the number of threads to 1000 and 100, surprisingly I get this same number of rps. I'm using HTTP Sampler and "use Keep-Alive" is set to true. When I look in the statistics I see that when using 100 threads, it makes use of Keep-Alive and connect_time is around 100 ms, but when the number of threads is higher connect_time grows, it's like it stops reusing the connections.

I know this isn't a server issue, because I've tried testing that same endpoint with Yandex.Tank and phantom and it can easily maintain 10 000 requests per second, the problem is it can't use response data to make furhter requests, that's why I have to use JMeter for this task.


Solution

  • This can be done by using "Stepping thread group". It will allow you to send 10000 request per second upto specified time. Refer below image.

    Stepping Thread Group

    Download jar from below link.

    https://jmeter-plugins.org/wiki/SteppingThreadGroup/