我们正在尝试使用jmeter.Following进行负载测试,这是一个场景。
Application1 :2 req/min(节流层)
场景1 :我们已经创建了具有10个线程数和分支周期为1的脚本,根据节流层,它不应该接受超过2 req/min的请求,但是超过2个请求得到了适当的响应。

Scenarion 2:我们测试了相同的api应用程序,线程数为30个,分支程序周期为60。它正在正常工作,我们得到了正确的错误响应,说明您已经超出了限制。

有谁能帮助我们理解为什么它在场景1中失败的原因?
发布于 2017-05-25 09:39:18
此行为的原因是因为节流是异步执行的,而不阻塞传入的请求。当两个请求之间的时间差很大时,这就为节流事件的发生提供了足够的时间,因此节流精度更高。
在第二个测试中,您使用了30个线程,爬升时间为60秒。这意味着在测试的前60秒内,每个请求之间有2秒的间隔( 60 /30)。在第一个测试中,两个请求之间的间隔为1/10 =0.1秒。因此,在第一个测试中,有许多请求是在非常短的时间内发送的,因此,在作出节流决定并通知时,比最初允许的请求多出了几个请求。但是在第二个测试中,每个请求之间有2秒的间隔。因此,在第二个请求通过后,节流引擎做出节流决定,并在另一个2秒失效之前通知Gateway。因此,当第三个请求到达时,网关知道它应该被切断。
总之,当请求之间的时间非常短时,节流计数的准确性就会降低。大多数实际情况与第二个测试相似,在第二个测试中,两个请求之间总是有一个“思考时间”。在这些情况下,准确性很高。
https://stackoverflow.com/questions/43932671
复制相似问题