extract element from tuple

OBJECTS1 → List((1657751,2), (1658105,2), (4557378,2), (1657750,1), (916,1), (917,2), (1658068,1), (1658069,2), (4557379,2), (1658082,1), (4557367,1), (4557368,1), (1660865,2), (1660866,2), (1658122,1), (921,1), (922,2), (923,2), (1660875,1), (1660876,2), (1660877,2), (1658300,1), (1658301,1), (1658302,1), (1658309,1), (1658310,1), (2996562,1), (4638455,1))

The Gatling DSL provides built in functions to access tuple elements
https://gatling.io/docs/2.3/session/expression_el/?highlight=expression%20language

Try this,

.foreach("${OBJECTS1}", “couple”) {

exec(http(“request_foreach47”
.get("/ctr/web/api/seriegraph/bydates/${couple._1}/${couple._2}/1552863600000/1554191743799")
.headers(headers_27))
}

Hi,

Thanks for you answer,

I tried and there the result :

Failed to build request request_foreach47: Product 1657751 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658105 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 4557378 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1657750 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 916 named c 1 (Infinity%)
ouple do not support tuple access
Failed to build request request_foreach47: Product 917 named c 1 (Infinity%)
ouple do not support tuple access
Failed to build request request_foreach47: Product 1658068 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658069 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 4557379 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658082 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 4557367 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 4557368 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1660865 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1660866 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658122 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 921 named c 1 (Infinity%)
ouple do not support tuple access
Failed to build request request_foreach47: Product 922 named c 1 (Infinity%)
ouple do not support tuple access
Failed to build request request_foreach47: Product 923 named c 1 (Infinity%)
ouple do not support tuple access
Failed to build request request_foreach47: Product 1660875 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1660876 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1660877 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658300 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658301 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658302 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658309 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 1658310 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 2996562 nam 1 (Infinity%)
ed couple do not support tuple access
Failed to build request request_foreach47: Product 4638455 nam 1 (Infinity%)
ed couple do not support tuple access

What is strange to me is that the value of “Product XXXX” is what is in my tuple so even if he say that it does not support tuple acces he can still get the value.

Hey,

If “couple” contains a tuple then the above syntax should work.

A question, where does the “Product” text in the error message come from ?

Failed to build request request_foreach47: Product 4638455 nam 1 (Infinity%)
ed couple do not support tuple access

Why don’t you try printing the value of couple within the loop to make sure it contains what it’s expected to contain ?

regards,
Aju Thomas

The error message is incorrect, fixing.

class ComputerDatabaseWorkload extends Simulation {

val httpProtocol = http
  .baseUrl("[http://computer-database.gatling.io](http://computer-database.gatling.io)")
  .acceptEncodingHeader("gzip, deflate")

val scn = scenario("scenario")
  .exec(http("home").get("/computers").check(regex("<a href=\"(.*?)\">(.*?)</a>").ofType[(String, String)].findAll.saveAs("links")))

  .foreach("${links}", "link") {
    exec { session =>
      println(session("link").as[(String, String)])
      session
    }
      .exec(http("${link._2}").get("${link._1}"))
  }

  setUp(
    scn.inject(atOnceUsers(1))
  ).protocols(httpProtocol)
}

works just fine.

Thanks you Thomas et Stéphane,

With stephan example I found my mistake, the problem was that I had not put the .ofType[(String, String)] part in my regex