在任何时候限制开放连接,保持每秒X用户的速率?

时间:2015-10-29 04:24:08

标签: gatling

我正在编写Gatling负载测试,它只是在给定的时间内通过HTTP轰击给定端点。我让它逐渐增加每秒的连接数,然后在测试期间将其保持在那里。我的设置如下:

setUp(
    scn.inject(
        rampUsersPerSec(10 to 70 during(1 minute),
        constantUsersPerSec(70) during(9 minutes)
    ).protocols(httpConf).throttle(jumpToRps(70) holdFor(10 minutes))
)

这样可行,但问题是我们的请求需要很长时间,有时甚至超过一秒钟。

最终发生的事情是服务器变慢并且请求开始花费的时间越来越长,而不是一次保持与服务器的70个连接,这会快速线性增长,并且我会有1000个打开的连接在任何给定的时间。

有没有办法限制游泳池" Gatling用户在给定时间维护X开放连接?到目前为止,我还没有成功地试图扼杀它。

1 个答案:

答案 0 :(得分:3)

你想要的是封闭注射模型。

为了使用Gatling执行此操作,您必须使用循环包装场景内容,并可能刷新HTTP缓存和cookie jar。搜索文档。

请注意,此模型无处不现,除非您的系统确实限制了它允许输入的用户数量,并具有预先排队的队列。典型的用例是呼叫中心。