Как выполнить групповую разбивку на страницы существующего значения сеанса Seq [(String)] в Gatling?

Я выполняю вызов, который сохраняет множество значений в Seq [(String)], он выглядит следующим образом:

.exec(session => {session.set("Ids", session("externalIds").as[Seq[String]])})

Есть причина, по которой мне нужно создать другую переменную сеанса под названием Ids our of externalIds, но я не буду вдаваться в нее сейчас.

Затем мне нужно выполнить другой вызов и разбить на страницы 10 значений из $ {Ids}, пока я не отправлю их все. (Так что в случае 100 значений мне придется выполнить этот вызов 10 раз) JSON выглядит следующим образом:

..."Ids": [
    "962950",
    "962955",
    "962959",
    "962966",
    "962971",
    "962974",
    "962978",
    "962983",
    "962988",
    "962991"
],...

Что я обычно делаю, когда мне приходится каждый раз перебирать одно значение, это просто:

  .foreach("${Ids}", "id") {
              exec(getSomething)
          }

Но поскольку мне нужно отправить [...] 10 значений каждое, я не уверен, должно ли оно вообще быть на уровне сценария. Помощь! :)


person PloniStacker    schedule 19.03.2020    source источник


Ответы (2)


Используйте преобразование в своем чеке, чтобы преобразовать Seq [String ] на куски, например, с помощью Seq # сгруппированы.

person Stéphane LANDELLE    schedule 19.03.2020
comment
Спасибо за ваш ответ! Кажется, что преобразование работает только при проверке, однако идентификаторы собираются по нескольким запросам (на самом деле я разбиваю на страницы запрос, который его собирает). Это означает, что мне нужно найти способ выполнить группировку по существующему значению сеанса. - person PloniStacker; 20.03.2020

Я не мог понять, как это сделать во время сеанса, поэтому я вынес его за пределы функции, и вот решение:

 .exec(session => {session.set("idSeqList", convertFileIdSeqToFileIdSeqList(session("idsSeq").as[Seq[String]]))})

 def convertFileIdSeqToFileIdSeqList(idSeq: Seq[String]): Seq[Seq[String]] = {
    idSeq.grouped(10).toList
  }

Обратите внимание, что при размещении вашего списка в теле JSON вам нужно будет использовать .jsonStringify (), чтобы правильно отформатировать его в контексте JSON, например:

  "ids": ${ids.jsonStringify()},
person PloniStacker    schedule 22.03.2020