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

Gatling遍历session存储ID列表循环执行删除接口问题

问题根因

foreach循环逻辑失效是两处写法错误导致的:

  • 你在foreach方法第二个参数定义了单次遍历的单个ID会存到session key为id的位置,但删除接口路径里传的是全量ID集合变量taxonomyIDs,相当于把整个列表传给了只接收单个ID的路径参数,接口无法识别
  • 路径参数的变量引用没有匹配你定义的循环临时变量,拿错了值
正确实现代码
ScenarioBuilder init = scenario("Initialization")
        .exec(http("getAllTaxonomies")
                .get("/services/taxonomy-packages")
                .check(jsonPath("$..id")
                .findAll().saveAs("taxonomyIDs")))
        // 遍历存好的ID列表,当前遍历到的单个ID存到session key为id的位置
        .foreach("${taxonomyIDs}", "id")
        .on(exec(http("deleteTaxonomy")
                // 直接引用单个id变量作为路径参数即可
                .delete("/services/taxonomy-packages/${id}")
                .check(status().is(204))));
补充说明
  • 你用jsonPath(...).findAll().saveAs("taxonomyIDs")存到session里的本身就是标准Java List类型,不需要额外找List存储方案,Gatling内部已经完成了类型转换和存储
  • 如果需要在遍历前校验ID列表是否拉取成功,可以在getAllTaxonomies请求后加check(status().is(200))校验,避免接口报错拿到空列表导致后续删除逻辑不执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:54:07