我正在编写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开放连接?到目前为止,我还没有成功地试图扼杀它。
答案 0 :(得分:3)
你想要的是封闭注射模型。
为了使用Gatling执行此操作,您必须使用循环包装场景内容,并可能刷新HTTP缓存和cookie jar。搜索文档。
请注意,此模型无处不现,除非您的系统确实限制了它允许输入的用户数量,并具有预先排队的队列。典型的用例是呼叫中心。