Проблемы с использованием файла .tsv, содержащего JSON, в качестве файла потока данных в Gatling

Я использую Gatling для стресс-тестирования RESTful API. Я буду публиковать данные в формате JSON по определенному URI. Я хочу использовать файл фида в формате .tsv, где каждая строка представляет собой определенный элемент JSON. Однако я получаю сообщения об ошибках и просто не могу найти шаблон или систему для добавления "" в мой .tsv JSON, чтобы фид работал. Прикреплен мой код и файл tsv.

package philSim

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class eventAPISimulation extends Simulation {

  object Query {
    val feeder = tsv("inputJSON.tsv").circular
    val query = forever {
      feed(feeder)
      .exec(
        http("event")
        .post("my/URI/here")
        .body(StringBody("${json}")).asJSON
      )
    }
  } 

  val httpConf = http.baseURL("my.url.here:portnumber")

  val scn = scenario("event").exec(Query.query)

   setUp(scn.inject(rampUsers(100) over (30 seconds)))
        .throttle(reachRps(2000) in (30 seconds), holdFor(3 minutes))
        .protocols(httpConf)
}

Вот пример моего неотредактированного .tsv с JSON:

json
{"userId":"234342234","secondaryIdType":"mobileProfileId","secondaryIdValue":"66666638","eventType":"push","eventTime":"2015-01-23T23:20:50.123Z","platform":"iPhoneApp","notificationId":"123456","pushType":1,"action":"sent","eventData":{}}
{"userId":"234342234","secondaryIdType":"mobileProfileId","secondaryIdValue":"66666638","eventType":"INVALID","eventTime":"2015-01-23T23:25:20.342Z","platform":"iPhoneApp","notificationId":"123456","pushType":1,"action":"received","eventData":{"osVersion":"7.1.2","productVersion":"5.9.2"}}
{"userId":"234342234","secondaryIdType":"mobileProfileId","secondaryIdValue":"66666638","eventType":"push","eventTime":"2015-01-23T23:27:30.342Z","platform":"iPhoneApp","notificationId":"123456","pushType":1,"action":"followedLink","eventData":{"deepLinkUrl":"URL.IS.HERE","osVersion":"7.1.2","productVersion":"5.9.2"}}
{"userId":"234342234","secondaryIdType":"mobileProfileId","secondaryIdValue":"66666638","eventType":"push","eventTime":"2015-01-23T23:27:30.342Z","platform":"AndroidApp","notificationId":"123456","pushType":1,"action":"followedLink","eventData":{"deepLinkUrl":"URL.IS.HERE"}}
{"userId":"234342234","secondaryIdType":"mobileProfileId","secondaryIdValue":"66666638","eventType":"push","eventTime":"2015-01-23T23:25:20.342Z","platform":"iPhoneApp","notificationId":"123456","pushType":1,"action":"error","eventData":{}}

Я видел это сообщение в блоге , в котором рассказывается об манипулировании кавычками ("), чтобы заставить JSON автора работать с .tsv, но автор не предлагает системы, как это сделать. Я пробовал разные вещи, и ничего из того, что я делаю, действительно не работает. Некоторые JSON будет работать с переносом цитаты аналогично тому, что делает автор статьи. Однако это не работает для всего. Каковы наилучшие методы работы с JSON и Gatling? Спасибо за вашу помощь!


person PhillipAMann    schedule 25.03.2015    source источник


Ответы (1)


Прямо из документации Gatling: используйте rawSplit, чтобы TSV Gatling парсер сможет обрабатывать ваши записи JSON:

tsv("inputJSON.tsv", rawSplit = true).circular
person Pierre DAL-PRA    schedule 25.03.2015
comment
Благодарю вас! Клянусь, я читал документацию... Мне нужно научиться делать глубокий вдох и читать медленнее, а не в состоянии паники! - person PhillipAMann; 26.03.2015