Scala 如何将列表添加到feeder

Scala 如何将列表添加到feeder,scala,gatling,Scala,Gatling,我想做的是用随机的值列表点击端点 我是这样编码的 import com.gap.loyalty.creditcards.points.domain.PointsRequest import com.gap.performance.Header._ import io.gatling.core.Predef._ import io.gatling.core.structure.ScenarioBuilder import io.gatling.http.Predef._ import scala.

我想做的是用随机的值列表点击端点

我是这样编码的

import com.gap.loyalty.creditcards.points.domain.PointsRequest
import com.gap.performance.Header._
import io.gatling.core.Predef._
import io.gatling.core.structure.ScenarioBuilder
import io.gatling.http.Predef._
import scala.collection.JavaConverters._
import scala.util.Properties.envOrElse

object PersistList {
    val data: java.util.List[PointList] = Helper.fetchPointsList() //which returns a random list
    val dataList = data.asScala.toList;

    private val postPersist = http("Persist Points")
        .post("/persist")
        .headers(applicationJson)
        .check(status is 200)

    val scenarios: ScenarioBuilder = scenario("Persist Points")
        .feed(dataList).forever(exec(postPersist))
}
点列表

String points
Long totalPointsEarned
端点接受列表,即点列表

这向我显示了一个错误,因为feeder接受FeedBuilder格式的提要。现在我的问题是如何将列表转换为地图


我看了很多例子,但不知道怎么做。感谢您的帮助

加特林进料器是一个迭代器,可以将字符串映射到任意字符串

因此,您可以获取数据列表并使用.map和.toIterator来提供您可以调用的内容

val dataList = data.asScala.toList.map(point => Map("points" -> point).toIterator 
因此,每次调用.feed时,列表中的下一个点值将放在会话中的“点”下。请注意,要在某个地方使用此值,必须更改列出的持久点定义

根据您的需要,您还可以通过定义一个在.feed上提供随机值的函数来简化代码

如果你只是想要一个介于0和100之间的随机点值,你可以将dataList重新定义为

val dataList = Iterator.continually(Map("points" -> Random.nextInt(101)))