使用馈线随机访问地图数组中的一行
Access randomly a line in an array of map using feeders
我正在尝试做一个非常简单的操作,但是当我们是 scala/gatling 的初学者时它变得非常复杂。
我只需要在每次请求时在地图数组中随机选择一条线...
我正在研究 JSON,看起来像这样:
[
{ "name": "a", "age": 33 },
{ "name": "b", "age": 34 },
{ "name": "c", "age": 38 }
]
这是我正在尝试做的草稿:
val user = feed(jsonFile("peoples.json"))
.exec( session => {
val someone = session[random()] // How to code that ?
http(someone.age)
.get("/users/${someone.name}")
})
val scn = scenario("").exec(user)
会话似乎包含用户数据,但我不知道如何访问它来构建我的 http 请求的路径!
我见过很多不同的方法来做事情,这些方法可能接近我想要实现的目标,但我找不到一个清晰的工作示例。
一般来说,在 Scala 中,如果你有一个 Seq
访问一个随机元素会像这样
import scala.util.Random
val random = new Random
val list = List(1, 2, 3, 4, 5)
list(random.nextInt(list.length))
在 gatling
我相信它会给你 Seq[Map[String, Any]]
作为输入。所以你会做类似
的事情
val random = new Random
val someone = session(random.nextInt(session.length))
http(someone("age")) ...
检查喂食器文档:http://gatling.io/docs/2.2.0/session/feeder.html?highlight=feeders
你基本上可以只使用随机喂食器:feed(jsonFile("peoples.json")).random
然后就可以用DSL访问了:
val myFeeder = jsonFile("peoples.json").random
val userRequest = exec(http("someones ${age}")
.get("/users/${name}"))
val scn = scenario("x").exec(feed(myFeeder),userRequest)
我正在尝试做一个非常简单的操作,但是当我们是 scala/gatling 的初学者时它变得非常复杂。
我只需要在每次请求时在地图数组中随机选择一条线...
我正在研究 JSON,看起来像这样:
[
{ "name": "a", "age": 33 },
{ "name": "b", "age": 34 },
{ "name": "c", "age": 38 }
]
这是我正在尝试做的草稿:
val user = feed(jsonFile("peoples.json"))
.exec( session => {
val someone = session[random()] // How to code that ?
http(someone.age)
.get("/users/${someone.name}")
})
val scn = scenario("").exec(user)
会话似乎包含用户数据,但我不知道如何访问它来构建我的 http 请求的路径!
我见过很多不同的方法来做事情,这些方法可能接近我想要实现的目标,但我找不到一个清晰的工作示例。
一般来说,在 Scala 中,如果你有一个 Seq
访问一个随机元素会像这样
import scala.util.Random
val random = new Random
val list = List(1, 2, 3, 4, 5)
list(random.nextInt(list.length))
在 gatling
我相信它会给你 Seq[Map[String, Any]]
作为输入。所以你会做类似
val random = new Random
val someone = session(random.nextInt(session.length))
http(someone("age")) ...
检查喂食器文档:http://gatling.io/docs/2.2.0/session/feeder.html?highlight=feeders
你基本上可以只使用随机喂食器:feed(jsonFile("peoples.json")).random
然后就可以用DSL访问了:
val myFeeder = jsonFile("peoples.json").random
val userRequest = exec(http("someones ${age}")
.get("/users/${name}"))
val scn = scenario("x").exec(feed(myFeeder),userRequest)