передать массив строк из фидера gatling CSV - PullRequest
0 голосов
/ 25 марта 2020

Можно ли передать массив строк из фидера для отправки запросов.

мой CSV-файл:

sourceId,date,keywords,payload
stg_st_record1,"2017-10-10T00:53:42Z",["SAVE_ALL","John","configs"],"Here is some payload1"
stg_st_record2,"2017-10-10T00:53:42Z",["SAVE_ALL","John","configs"],"Here is some payload2"

мой скрипт gatling

def PostActionLog():ChainBuilder = {
repeat(times = 10) {
feed(csvPostFeeder)
.exec (http("Post Action logs")
.post("/api/actionlogs")
.body(StringBody("""{"sourceId": "${sourceId}","date": "${date}", "keywords": ${keywords}, 
 "payload": "${payload}" }"""))
.check(status.is(201)))
 }
}

Полученное сообщение об ошибке:

byteArraysBody={"sourceId": "stg_st_record2","date": "2017-10-10T00:53:42Z", "keywords": 
 ["SAVE_ALL", "payload": "John" }

 HTTP response:
 status=
 415 Unsupported Media Type
 headers= 
 Content-Type: application/json; charset=utf-8
 Date: Wed, 25 Mar 2020 17:05:24 GMT
 Server: Kestrel
 Content-Length: 147

Похоже на Gatling не получает данные фидера правильно, я думаю, переломный момент - это способ, которым значения строкового массива передаются в пост-запрос gatling. Есть ли способ достичь этого?

1 Ответ

1 голос
/ 25 марта 2020

Проблема в том, что ваш файл очень искажен CSV. CSV имеет значение c: RFC4180 .

  1. Если запятая является разделителем, если запятая находится внутри значения, значение должно быть заключено в двойные кавычки.
  2. Если символ двойных кавычек находится внутри переносимого значения, его необходимо экранировать предыдущей двойной кавычкой.
sourceId,date,keywords,payload
stg_st_record1,"2017-10-10T00:53:42Z","[""SAVE_ALL"",""John"",""configs""]","Here is some payload1"
stg_st_record2,"2017-10-10T00:53:42Z","[""SAVE_ALL"",""John"",""configs""]","Here is some payload2"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...