如何将列表添加到供稿器

问题描述 投票:0回答:1

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

我为此编码的代码

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))
}

PointsList

String points
Long totalPointsEarned

端点接受列表,即PointList

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

我已经看过很多例子,但是我不知道该怎么做。感谢您的帮助

scala gatling
1个回答
0
投票

加特林馈线是将字符串映射到Any的迭代器。

因此,您可以获取dataList并使用.map和.toIterator为您提供可以调用.feed on的功能

val dataList = data.asScala.toList.map(point => Map("points" -> point).toIterator 

因此,每次调用.feed时,列表中的下一个点值将被放置在Session中的“ points”键下。请注意,您必须更改列出的持久点的定义才能在某处使用此值。

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

例如:如果您只想要0到100之间的随机点值,则可以将dataList重新定义为...

val dataList = Iterator.continually(Map("points" -> Random.nextInt(101)))
© www.soinside.com 2019 - 2024. All rights reserved.