加特林重复连接重用
Gatling repeat with connection re-use
使用 Gatling 2,是否可以重复使用连接?怎么样?
我有以下代码,但它似乎每次都打开新连接。我想保持 x 个连接一段时间。
val httpProtocol = http
.baseURL("http://mysrv.pvt")
.inferHtmlResources()
val uri1 = "http://mysrv.pvt"
val scn = scenario("Simulation").repeat(50){
pause(2 seconds,20 seconds).
exec(http("request_0")
.get("/s1/serve.html")
)
}
setUp(scn.inject(
atOnceUsers(20000)
).protocols(httpProtocol))
首先,你的问题不够准确。
默认情况下,Gatling 每个虚拟用户有一个连接池,因此每个虚拟用户在顺序请求之间做 re-use 个连接,并且在处理资源获取时可以有多个并发连接,你可以这样做您启用了 inferHtmlResources
。这样,虚拟用户就像独立的浏览器一样。
您可以更改此行为并共享一个公共连接池,请参阅 doc。但是,您必须确保这对您的情况有意义。您的工作负载配置文件将大不相同,client/Gatling 和 server/your 应用程序的 TCP 堆栈上的费用会少得多,因此请确保您的应用程序在生产中的使用方式。
使用 Gatling 2,是否可以重复使用连接?怎么样?
我有以下代码,但它似乎每次都打开新连接。我想保持 x 个连接一段时间。
val httpProtocol = http
.baseURL("http://mysrv.pvt")
.inferHtmlResources()
val uri1 = "http://mysrv.pvt"
val scn = scenario("Simulation").repeat(50){
pause(2 seconds,20 seconds).
exec(http("request_0")
.get("/s1/serve.html")
)
}
setUp(scn.inject(
atOnceUsers(20000)
).protocols(httpProtocol))
首先,你的问题不够准确。
默认情况下,Gatling 每个虚拟用户有一个连接池,因此每个虚拟用户在顺序请求之间做 re-use 个连接,并且在处理资源获取时可以有多个并发连接,你可以这样做您启用了 inferHtmlResources
。这样,虚拟用户就像独立的浏览器一样。
您可以更改此行为并共享一个公共连接池,请参阅 doc。但是,您必须确保这对您的情况有意义。您的工作负载配置文件将大不相同,client/Gatling 和 server/your 应用程序的 TCP 堆栈上的费用会少得多,因此请确保您的应用程序在生产中的使用方式。