Gatling - 如何实现馈线在循环中选择新值

Gatling - how to achieve feeders to pick a new value in loop

在 Gatling 中,我使用 feeders 在请求中传递坐标值,下面是代码。我希望每次重复从馈线中拾取一个新值。我收到以下错误 - /mapping/v2/: 构建请求失败:未定义名为 'map 30 (100.0%) x' 的属性

有人可以请教如何实现这一点。谢谢。

    val mapfeeder   = csv(fileName = "data/cordinates.csv").circular


object PDP {
    val pdp = group("ABC_01_DetailsPage") {
            exec(http("PropertyDetailsPage")
                .get("/abc/property/detail.html?propertyId=12345&index=0&q=${address_json6}&qt=address&_qt=address&offset=1&sort=address&limit=20&view=property&mode=&radius=1.0Km&landuse=All")
                .check(substring("Change in Median Price")))
            }

    .pause(duration = 1)
    
    .feed(mapfeeder) //this works but only take the fist value and repeats it 30 times
    
    .group("ABC_02_DetailsPage_MAP") {
              repeat(30) {
                feed(mapfeeder) // this one fails with the error mentioned in the post
                exec(http("/mapping")
             .get(uri22 + "?mapTypeId=1006&x=${mapx}&y=${mapy}&z=19&access_token=${maptoken}"))
        }
        
val scn = scenario("RecordedSimulation")
            .feed(SearchFeeder)
            .exec(Homepage.homepage, Login.login, SearchLink.search, SearchEntry.searchentry, PDP.pdp, Logout.logout)

setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)

您缺少一个点来附加您的 feed 和随后的 exec,因此只有最后一条指令(exec)的结果被传递给 repeat方法。

应该是:

repeat(30) {
  feed(mapfeeder)
  .exec(
    http("/mapping") // <== HERE, DOT WAS MISSING
      .get(uri22 + "?mapTypeId=1006&x=${mapx}&y=${mapy}&z=19&access_token=${maptoken}")
  )
}