Using a Feeder for creating different http GET requests

Hi,

I’m trying to simulate several concurrent requests to different URLs using a CSV feeder.
I’m getting an error: “07:25:51.282 [ERROR] i.g.h.a.HttpRequestAction - No attribute named ‘rics’ is defined”

This is the code:

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

class CMWell extends Simulation {

val httpConf = http
.baseURL(“http://api.thr.com/cmt/ot”)

val scn = scenario(“Concurrent”)
.during(10 seconds) {
feed(csv(“rics2.csv”).circular)
exec(http(“request_1”)
.get("/${rics}?format=json"))
}
setUp(scn.inject(atOnceUsers(1)).protocols(httpConf))

I’ve seen similar topics here and the code seems correct.
I tried several variations of this and all results in same error.
I use version 2.0.0-RC5.

Thanks,
Boris

Do you have a header row in your csv named rics? It should look like this:

rics myric1 myric2 myricetc

Hi,

This also threw me as I did not know where to define the attribute. Maybe the exception message should say:

“No attribute named ‘$attribute’ is defined. Try setting it as a column header in your data file” ?

Aidy

@Aidy: an attribute could also come from a check, be manually injected, etc.

@Boris: you forgot a dot to chain your feed and the next exec, so the feed is simply discarded!

feed(csv(“rics2.csv”).circular)
.exec(http(“request_1”) // dot here!!!

Thanks a lot! Though I’ve found this earlier, it took some time.

Sorry, week-end time :wink:

Hi Stéphane,

Could we then (in the exception message) point the user to an HMTL page that lists all the attributes that can be set?

Aidy

Hi,

Sorry, I don’t understand the question.

Hi Stéphane,

The e-mail thread was about the exception message given when the user does not include a column header on a data file, yet attempts to reference the data in the the expression language. My suggestion is to include in the error
message a link to a page which outlines how to set an attribute.

Aidy

Adding a link in the message is a big no: links change + those messages end up serialized, parsed and printed in the reports. Longer messages = more overhead.

I added a list in the doc: https://github.com/gatling/gatling/commit/6980f271a424a0e103c4219bd4b79311da43306f