You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gatling中用单用户结合Feeder顺序执行HTTP请求

解决方案

要实现单个用户顺序执行Feeder中所有50个请求,只需调整场景逻辑和用户注入策略,具体步骤如下:

1. 优化Feeder(可选但更简洁)

原Feeder使用可变变量count生成序列,可替换为更安全清晰的方式,直接生成包含50个元素的迭代器:

val feeder = (1..50).map {
    mapOf("requestParam" to "requestParamValue$it")
}.iterator()

2. 修改场景为循环执行

让单个用户循环执行feed+exec逻辑50次,对应Feeder的所有数据:

val scn = scenario("Test scenario")
    .repeat(50) { // 循环50次,覆盖Feeder的全部50个值
        feed(feeder)
        .exec(
            http("Post request")
                .put("/someUrl")
                .header("Content-Type", "application/json")
                .body(StringBody("""
                    {
                        "requestParam": #{requestParam}
                    }
                """.trimIndent()))
        )
        .pause(1) // 每次请求后暂停1秒,保持原逻辑
    }

3. 调整用户注入策略

将并发用户数改为1,一次性启动单个用户:

init {
    setUp(
        scn.injectOpen(
            atOnceUsers(1) // 仅启动1个用户
        ).protocols(httpProtocol)
    )
}

原理说明

单个用户启动后,会进入repeat(50)循环,每次从Feeder中取出下一个参数,执行HTTP请求,完成后暂停1秒,直到跑完所有50次循环。由于Feeder正好包含50个元素,循环次数与Feeder数据量完全匹配,确保所有请求按顺序执行。

内容的提问来源于stack exchange,提问作者Vahancho22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 19:12:05