在 Gatling 中,如何从返回的正文中创建键值对并将其保存在会话中?
In Gatling, how can I create a key value pair from returned body and save it in the session?
所以我执行了一个 POST 调用并在 return 中获取了一些对象。
我想提取并创建一个键值对并将其保存在会话中供以后使用。
我当前的代码如下所示:
.exec(http(“Rest call“)
.post("/api")
.body(ElFileBody("json/api.json")).asJson
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].id").findAll.saveAs(“id”))
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].name”).findAll.saveAs(“name”))
在这里,我在我的会话中得到了两个列表(向量),"id" 和 "name"。
我想做的是创建一个 key/value 对 id/name 的列表。显然,这些对应该与相同的 jsonpath 命中相关联。
最简单的方法是在会话函数中使用 scala 的集合压缩
.exec(http(“Rest call“)
.post("/api")
.body(ElFileBody("json/api.json")).asJson
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].id").findAll.saveAs(“id”))
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].name”).findAll.saveAs(“name”)
)
.exec(session => {
var ids = session("id").as[Seq[String]]
var names = session("name").as[Seq[String]]
session.set("pairs", ids zip names)
})
这将设置一个名为 "pairs" 的会话变量,内容是 Tuple2
的列表
查看 https://alvinalexander.com/scala/how-to-merge-sequential-collection-pairs-zip-unzip-scala-cookbook
所以我执行了一个 POST 调用并在 return 中获取了一些对象。 我想提取并创建一个键值对并将其保存在会话中供以后使用。
我当前的代码如下所示:
.exec(http(“Rest call“)
.post("/api")
.body(ElFileBody("json/api.json")).asJson
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].id").findAll.saveAs(“id”))
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].name”).findAll.saveAs(“name”))
在这里,我在我的会话中得到了两个列表(向量),"id" 和 "name"。 我想做的是创建一个 key/value 对 id/name 的列表。显然,这些对应该与相同的 jsonpath 命中相关联。
最简单的方法是在会话函数中使用 scala 的集合压缩
.exec(http(“Rest call“)
.post("/api")
.body(ElFileBody("json/api.json")).asJson
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].id").findAll.saveAs(“id”))
.check(jsonPath("$.result.objects[*].files[?(@.type == ‘FILE1’)].name”).findAll.saveAs(“name”)
)
.exec(session => {
var ids = session("id").as[Seq[String]]
var names = session("name").as[Seq[String]]
session.set("pairs", ids zip names)
})
这将设置一个名为 "pairs" 的会话变量,内容是 Tuple2
的列表查看 https://alvinalexander.com/scala/how-to-merge-sequential-collection-pairs-zip-unzip-scala-cookbook