В Gatling, как я могу создать пару ключ-значение из возвращенного тела и сохранить ее в сеансе? - PullRequest
0 голосов
/ 23 октября 2019

Итак, я выполняю вызов 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.

1 Ответ

1 голос
/ 23 октября 2019

самый простой способ сделать это - использовать zala коллекции 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)
})

это установит переменную сеанса, называемую "pair", с содержимым, являющимся List of Tuple2

проверить https://alvinalexander.com/scala/how-to-merge-sequential-collection-pairs-zip-unzip-scala-cookbook

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...