我正在尝试做一个非常简单的操作,但是当我们是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请求的路径!
我已经看到许多不同的方法可以接近我想要达到的目标,但我找不到一个明确的工作示例。
答案 0 :(得分:1)
一般情况下,在Scala中,如果你有tf.float32
访问随机元素会像这样
v1 = tf.Variable(0.0, name="v1")
v2 = tf.Variable(0.0, name="v2")
在Seq
我相信它会给你import scala.util.Random
val random = new Random
val list = List(1, 2, 3, 4, 5)
list(random.nextInt(list.length))
作为输入。所以你要做类似
gatling
答案 1 :(得分:1)
检查饲养员文件: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)