Как передать поле тела ответа в тело другого запроса (Гатлинг) - PullRequest
0 голосов
/ 24 августа 2018

У меня есть две конечные точки.

- / аутентификация

- / аутентификация / проверка

/ authenticate вернуть поле guid в теле ответа.и / authenticate / validation требует это поле в теле запроса.

Я попытался получить guid следующим образом:

jsonPath("$..guid").saveAs("verificationGuid")

и передатьэто к другому телу:

.body(StringBody(s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}"))

это кодовый блок:

 def login = {
    exec(http("Authenticate")
      .post("/authenticate")
      .body(StringBody(userString))
      .headers(headerLogin)
      .check(status is 200)
      .check(jsonPath("$..guid").saveAs("verificationGuid"))
    )
    .exec(http( "Authenticate verify")
    .post("/authenticate/verify")
    .headers(headerLogin)
    .body(StringBody(s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}"))
    .check(status is 200)
    )
  }

Но это не работает, как я могу это сделать?

1 Ответ

0 голосов
/ 25 августа 2018

Удалить s из s"{\"guid\":${verificationGuid}, \"code\":\"123456\"}").Если перед строкой стоит s, то каждый заполнитель ${something} будет рассматриваться как встроенная в Scala интерполяция строк, и компилятор попытается заменить ее на переменную Scala, которой в вашем случае не существует.Без s он будет считаться литеральной строкой, а затем перехватываться анализатором Gatling EL и заменяться ранее сохраненным атрибутом сеанса Gatling.

...