Gatling doesnt replace dynamic params using feed

368 Views Asked by At

I have the follow gatling script:

 val wagerFeeder = csv("wagers.csv").random

 val placeBetScenario = scenario("request")
    .feed(wagerFeeder)
.exec(http("send requests")
.post(apiPlaceBet)
    .headers(sentHeaders)
    .body(StringBody(session=>Requests.MyRequest)).asJSON
    .check(status.is(200))
  )

  setUp(
    placeBetScenario.inject(atOnceUsers(1))
  ).protocols(httpConf)

val MyRequest =
    """{
        "playerDetails" : {
          "playerId" : "playerId123"
        },
        "campaignDetails": {
          "campaignId": "dummy-campaign"
        },
        "wagerDetails":{
          "amount" : "${wagerAmount}",
          "currencySymbol": "EUR"
        }
      }"""

wager.csv content:

wagerAmount,wagerCurrency
10,EUR
15,USD

After running this seems like ${wagerAmount} doesnt populated and remain with the placeholder string

what ami I missing?

response:

Request:
Place bet request: KO status.find.is(200), but actually found 400
=========================
Session:
Session(request,1,Map(gatling.http.cache.dns -> io.gatling.http.resolver.ShuffleJdkNameResolver@1d887911, wagerAmount -> 15, wagerCurrency -> USD),1505806932188,0,KO,List(),<function1>)

stringData={
        "playerDetails" : {
          "playerId" : "playerId123"
        },
        "campaignDetails": {
          "campaignId": "dummy-campaign"
        },
        "wagerDetails":{
          "amount" : "${wagerAmount}",
          "currencySymbol": "EUR"
        }
      }

${wagerAmount} should have been replaced with 15. seems from logs that gatling does manage to pick that up. but it's not replaced

0

There are 0 best solutions below