сохранить и получить переменную из json в другой сценарий, используя gatling - PullRequest
1 голос
/ 08 апреля 2020

Я использую Гатлинг с scala. И я хочу проверить сумма + 100 . Как я могу получить сумму от saveAs («сумма») и поместить в сумму + 100

  private val getBeforeStatus = scenario("getBeforeStatus")
    .exec(http("GET method")
      .get("/get")
      .check(jsonPath("$.amount").ofType[Int].saveAs("amount")))

  private val post = scenario("post")
    .exec(http("POST method")
      .post("/post")
      .body(StringBody("{\"count\": 3}"))
      .check(status.is(200)))
    .exec(http("DELETE method")
      .delete("/delete/1")
      .check(status.is(200)))

  private val getAfterStatus = scenario("getAfterStatus")
    .exec(http("GET method")
      .get("/get")
      .check(jsonPath("$.amount").ofType[Int].is(amount + 100)))

  setUp(
    getBeforeStatus.inject(atOnceUsers(1)),
    post.inject(atOnceUsers(100)),
    getAfterStatus.inject(atOnceUsers(1)))
    .protocols(httpConf)

1 Ответ

0 голосов
/ 22 апреля 2020

Сохраните значение суммы как переменную в Simulation:

var amount: Int
scenario("getBeforeStatus")
    .exec(http("GET method")
      .get("/get")
      .check(jsonPath("$.amount").ofType[Int].saveAs("amount")))
    .exec{ session =>
       amount = session("amount").as[Int]
       session
    }

Затем вам нужно будет «подождать», пока 100 запросов не будут выполнены. Решение ad-ho c будет:

setUp(
    getBeforeStatus.inject(atOnceUsers(1)),
    post.inject(atOnceUsers(100)),
    getAfterStatus.inject(
      nothingFor(10 seconds), // enough time to end previous 100 requests
      atOnceUsers(1))
    )
    .protocols(httpConf)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...