首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Gatling中,如何从返回的body创建键值对并将其保存在会话中?

在Gatling中,如何从返回的body创建键值对并将其保存在会话中?
EN

Stack Overflow用户
提问于 2019-10-23 18:07:41
回答 1查看 303关注 0票数 0

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

我当前的代码如下所示:

代码语言:javascript
运行
复制
.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”))

在这里,我在会话中得到了两个列表(Vectors),"id“和"name”。我想要做的是创建一个id/name的键/值对的列表。显然,这些对应该与相同的jsonpath命中相关联。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-23 19:35:45

最简单的方法是在会话函数中使用scala的集合压缩

代码语言:javascript
运行
复制
.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)
})

这将设置一个名为“Tuple2”的会话变量,其内容为一列Tuple2

查看https://alvinalexander.com/scala/how-to-merge-sequential-collection-pairs-zip-unzip-scala-cookbook

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58520442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档