如何通过JMeter负载测试https端点获得高rps

时间:2019-06-18 14:32:20

标签: jmeter load-testing yandex-tank

我正在尝试使用JMeter测试我的https端点。我想每秒至少发出10000个请求,但是当我将线程数设置为10000时,我会得到更少的rps,大约是500。

我尝试将线程数设置为1000和100,令人惊讶的是我得到了相同数量的rps。我正在使用HTTP Sampler,并且“使用Keep-Alive”设置为true。当我查看统计信息时,我发现使用100个线程时,它使用了Keep-Alive,connect_time大约为100毫秒,但是当线程数更高时,connect_time增长了,就好像它停止了重用连接一样。

我知道这不是服务器问题,因为我曾尝试使用Yandex.Tank和phantom测试相同的端点,它可以轻松地每秒维护1万个请求,问题是它不能使用响应数据来发出更多请求,这就是为什么我必须为此任务使用JMeter。

2 个答案:

答案 0 :(得分:0)

我希望您尝试使用一台机器来实现这一目标。尝试使用多台机器或jmeter分布式模式。

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf https://www.blazemeter.com/blog/how-to-perform-distributed-testing-in-jmeter/ https://blazemeter.com/blog/3-common-issues-when-running-jmeter-scripts-and-how-solve-them/

我假设这是无法产生那么多负载的机器问题。通常,我每台机器最多使用300个线程,但这取决于机器配置。考虑服务器没有任何问题,只需检查计算机是否有问题以及多台计算机是否能够产生更多的负载即可。

希望这会有所帮助。

更新:-我的现代机器通常可以处理200-500。 请检查以下链接以获取更多信息:-

1。How do threads and number of iterations impact test and what is JMeter’s max. thread limit
                                                                                              2。https://www.blazemeter.com/blog/what%e2%80%99s-the-max-number-of-users-you-can-test-on-jmeter/

答案 1 :(得分:0)

这可以通过使用“步进线程组”来完成。它将允许您在指定时间内每秒发送10000个请求。请参考下图。

Stepping Thread Group

从下面的链接下载jar。

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