Как выполнить массовое разбиение / разбиение на фрагменты существующего значения сеанса Seq [(String)] в Gatling? - PullRequest
1 голос
/ 19 марта 2020

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

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

Есть причина, по которой мне нужно создать другую переменную сеанса с именем Идентификаторы наших внешних идентификаторов, но я не буду вдаваться в них сейчас.

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

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

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

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

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

  "ids": ${ids.jsonStringify()},
0 голосов
/ 19 марта 2020

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

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