我正在构建一个加特林馈线,其序列中包含 50 个值
var count = 0
val feeder = generateSequence {
val takenCount = (count++).takeIf { it < 50 }
if (takenCount != null) {
mapOf(
"requestParam" to "requestParamValue$count",
)
} else {
null
}
}.iterator()
并定义场景
val scn =
scenario("Test scenario")
.feed(feeder)
.exec(
http("Post request")
.put("/someUrl")
.header("Content-Type", "application/json")
.body(
StringBody(
"""
{
"requestParam": #{requestParam}
}""".trimIndent()
)
)
)
.pause(1)
现在,不要像这里那样使用
atOnceUsers(50)
并发出 50 个并发 HTTP 请求
init {
setUp(
scn.injectOpen(
atOnceUsers(50)
).protocols(httpProtocol)
)
}
我想只用 1 个用户在 feeder (50) 中顺序发出任意数量的请求
我相信加特林不允许
feed
检测馈线的末端然后优雅地停止虚拟用户。所以你必须指定循环计数。
repeat
循环访问 feeder。
scenario("Test scenario")
.repeat(50).on(
feed(feeder)
.exec(
http("Post request")
.put("/someUrl")
.header("Content-Type", "application/json")
.body(
StringBody(
"""
{
"requestParam": #{requestParam}
}""".trimIndent()
)
)
)
.pause(1)
)
)