我要做的是用随机值列表击中端点
我为此编码的代码
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格式。现在我的问题是如何将列表转换为地图。
我已经看过很多例子,但是我不知道该怎么做。感谢您的帮助
加特林馈线是将字符串映射到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)))