Параметры формы gatling: как передать пользовательские данные формы для отправки запроса - PullRequest
0 голосов
/ 13 января 2020

Я новичок в скриптинге Гатлинга. Я пытаюсь выполнить тестирование производительности по одному из API POST нашего приложения. Этот API-запрос POST требуется для передачи данных формы.

EG: Print-Screen коллекции почтальона тела запроса

enter image description here

Для этого я подготовил фрагмент кода Гатлинга в виде ниже:

      .exec(http("POST Explore JSON")
        .post("/sunrise/explore_json/")
        .header("Content-Type", "application/x-www-form-urlencoded")
        .header("Referer", "https://example.com/sunrise/dashboard/dummy_dashboard/")
        .header("x-csrftoken", "${csrf_token1}")
        .queryParam("form_data","{\"slice_id\":4}")
      //.formParam("form_data","datasource":"2__table") ----------> Tried Method 1
      //.formParamSeq(Seq(("form_data", "datasource":"2__table")))  ----------> Tried Method 2
      //.formParamMap(Map("form_data" ->  "datasource":"2__table")) ----------> Tried Method 3
      //.form("""form_data={"datasource":"2__table"}""") ----------> Tried Method 4

К сожалению, сбор данных не передает данные формы так, как я хочу, в настоящее время сбор данных передает данные формы:

form_data: {"datasource":"2__table"}

Способ I хочу передать это: (Обратите внимание, я удалил ":" и следующее "пробел")

form_data={"datasource":"2__table"}

Я пробовал много разных способов, но не смог успешно пройти данные формы, как указано выше. Есть ли способ, который я могу передать как form_data={"datasource":"2__table"}?

Ответы [ 3 ]

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

Я хотел бы поделиться, как мы исправили эту проблему, я думаю, это другой способ представления form_data?

    .exec(http("POST Explore JSON")
       .post("/sunrise/explore_json/")
       .header("Content-Type", "application/x-www-form-urlencoded")   
       .header("Referer","https://example.com/sunrise/dashboard/dummy_dashboard/")
       .header("x-csrftoken", "${csrf_token1}")
       .queryParam("form_data","{\"slice_id\":4}")
       .bodyPart(StringBodyPart("form_data", s"""{"datasource":"2__table"}"""))
       .check(status.is(200))

0 голосов
/ 06 февраля 2020

Я столкнулся с той же «проблемой», вы можете попробовать использовать '. FormParam' после вашего запроса. Для получения дополнительной информации и примеров смотрите: Документация Гатлинга: Параметры формы

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

Попробуйте это

 .formParam("form_data", "{\"datasource\":\"2__table\"}")
...