Я хочу получить значение из сцены ios и установить значение в QueryParam - PullRequest
0 голосов
/ 29 января 2020

Я хочу получить значение из сценария и установить значение в queryParam. Мой код ..

val scen1 = scenario("Home page").repeat(1) {
 exec(session => session
   .set("queryEnc", URLEncoder.encode(updateQueueItemCreatedTime(fileContents).toString.replace(" ", "%20"), "UTF-8"))
   .set("authroization", AwsSigner(AwsCredentialsProviderWithSession, region, Service, () => LocalDateTime.now(ZoneOffset.UTC)).getSignedHeaders(Uri, PostMethod, EmptyQueryParams ++ Map("Action" -> "SendMessage", "MessageBody" ->"${queryEnc}"), headers, emptyPayload)("Authorization"))
 )
 .exec(
    http("Custom headers")
     .get(queueUrl + "?Action=SendMessage&MessageBody=" + "${queryEnc}")
     .header("Authorization", "${authroization}")
   )
}

Когда я получаю значение в методе .get, используя "${queryEnc}" this. Затем значение передать, как я хочу. Но когда я получаю значение в Map("Action" -> "SendMessage", "MessageBody" ->"${queryEnc}"), тогда он получает ту же строку, что и "${queryEnc}", а не получает значение из сеанса.

Как я передам значение в MessageBody?

1 Ответ

0 голосов
/ 29 января 2020

Когда вы находитесь внутри функции сеанса, как и при вызове session.set, вы не можете использовать язык выражений gatling "$ {var}" в качестве сокращения для получения значения сеанса.

Вместо этого вы должны использовать сессионный API напрямую.

, поэтому вместо

.set("authroization", ... EmptyQueryParams ++ Map("Action" -> "SendMessage", "MessageBody" ->"${queryEnc}"), headers, emptyPayload)("Authorization"))

вам нужно

.set("authroization", ... EmptyQueryParams ++ Map("Action" -> "SendMessage", "MessageBody" -> session("queryEnc").as[String], headers, emptyPayload)("Authorization"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...