使用Jmeter进行负载测试时解决429个请求过多

时间:2018-12-15 11:10:42

标签: apache jmeter jmeter-4.0

我正在尝试对服务器进行多次负载测试请求。我设置了JMeter线程,每秒有100个并发用户。每个请求都从CSV(不同的令牌来标识用户)读取数据。但是经过几次请求,我得到了错误:

429 Too Many Requests

我们该如何解决? Jmeter中有任何设置吗?

还是我需要更改Apache设置?

2 个答案:

答案 0 :(得分:0)

这很可能是您正在测试的应用程序中的DDOS保护,因此您的选择是要求基础架构团队或开发人员禁用它。

根据reference documentation

The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").

A Retry-After header might be included to this response indicating how long to wait before making a new request.

您无法做任何事情。

答案 1 :(得分:0)

按照HTTP Status 409 documentation

  

HTTP 429太多请求响应状态代码表示用户在给定的时间内发送了太多请求(“速率限制”)。

     

此响应中可能包含一个Retry-After头,指示在发出新请求之前要等待多长时间。

您的JMeter测试配置很可能不正确,原因可能是:

  • 您不使用HTTP Cookie Manager,因此所有请求都属于同一会话,并且应用程序会做出相应反应
  • 您的应用程序限制了单个IP的请求速率。考虑使用IP SpoofingDistributed Testing或同时使用
  • 您对所有虚拟用户使用相同的凭据,请确保每个JMeter虚拟用户都有自己的凭据并操作自己的数据。您可以使用CSV Data Set Config进行参数化。