在加特林中,如何从返回的正文创建键值对并将其保存在会话中?



所以我执行了一个 POST 调用并得到一些对象作为回报。 我想提取并创建一个键值对,并将其保存在会话中供以后使用。

我当前的代码如下所示:

.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"。 我想做的是创建一个 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

相关内容

最新更新