Gatling, как прочитать только часть тела из файла? - PullRequest
0 голосов
/ 24 января 2020

Я хочу использовать Gatling с GraphQL, но не могу найти подходящих методов для работы с запросами GraphQL. Может ли Gatling поддерживать чтение непосредственно из файлов в переменные Gatling EL?

Ниже приведен пример, которого я хочу достичь - значение JSON поля query читается из файла init-query.graphql.

http("getInit")
      .post("/api/graphql")
      .body(StringBody(
        """
          |{
          |  "query": "${init-query.graphql}",
          |  "variables": null
          |}
        """.stripMargin))
      .asJson

Я также пробовал разные фидеры, но ни один из них не может просто поместить содержимое файла в переменную Gatling EL (точнее, я не смог этого сделать), чтобы его можно было использовать так же, как переменную типа ${init-query-content}

1 Ответ

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

Ладно, разобрался, как это сделать:

    .exec(session => {
      val bodyExpr = ElFileBody("init-query.graphql")
      val bodyStr = bodyExpr(session).toOption.get.filter(_ >= ' ') // remove control characters

      session.set("queryContent", bodyStr)
    })
    .exec(http("getInit")
      .post("/api/graphql")
      .body(StringBody(
        """
          |{
          |  "query": "${queryContent}",
          |  "variables": null
          |}
        """.stripMargin))
      .asJson
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...