加特林重复连接重用

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 堆栈上的费用会少得多,因此请确保您的应用程序在生产中的使用方式。