WSO2 API Manager使用jmeter进行限制测试

时间:2017-05-12 08:11:29

标签: wso2 wso2-am

我们正在尝试使用jmeter进行负载测试。以下是方案

Application1:2 req / min(节流等级)

场景1:我们创建了jmeter脚本,其中包含线程数10和上升周期1,根据限制层,它不应接受超过2 req / min但是超过2个请求得到了正确响应

screenshot

Scenarion 2:我们已经测试了相同的api相同的应用程序,线程数为30,并且上升时间段为60.它正在按预期工作,我们得到了正确的错误响应,说明您已超出限制

Scenario2

任何人都可以帮助我们了解情景1中失败原因的结果

1 个答案:

答案 0 :(得分:1)

此行为的原因是因为限制是异步执行的,而不会阻止传入的请求。当两个请求之间的时间间隔非常大时,这为节流事件提供了足够的时间,因此节流精度更高。

在第二次测试中,使用30个线程,加速时间为60秒。这意味着在测试的前60秒内,每个请求(60/30)之间存在2秒的间隙。在第一次测试中,两个请求之间的差距是1/10 = 0.1秒。因此,在第一次测试中,有很多请求是在很短的时间内发送的,因此在采取和通知限制决策时,会比原来允许的请求多一些请求。但在第二次测试中,每个请求之间的间隔为2秒。因此,在第二个请求通过后,限制引擎做出限制决定,并在另外2秒失效之前通知网关。因此,当第3个请求到达时,网关知道它应该被限制。

总之,当请求之间的时间非常短时,限制计数的准确性可以更低。大多数实际情况与您的第二次测试相似,其中总是有一个"思考时间"两个请求之间。在这些情况下,准确性很高。