2016-05-25 6 views
0

I Szenario mit Wiederholungsblock erschaffe. Ich brauche eine indexbasierte Anfrage, die generiert werden muss.Unable EL zu bewerten, während Gatling Szenario zu schaffen

def scnWithLoop() = scenario("scenarioName").repeat(counter, "counter") { 
    exec (session => { 
    val index: Integer = Integer.getInteger(session.attributes.get("counter").get.toString()); 
    session.set("index", index) 
    session 
}) 

exec(
     http("scenarioName") 
     .post(contextPath) 
     .headers(headers) 
     .body(StringBody(getData("${index}".toInt))) 
     .check(status.in(expectedCodes)) 
    ).pause(20 seconds) 
} 

Aber ist dies nicht EL $ {index} bewerten und gibt mir Fehler:

Caused by: java.lang.NumberFormatException: For input string: "${index}" 

Gatling Version: 2.0.0-M3a

jede Hilfe dankbar !!!

+0

Haben Sie dreifache Anführungszeichen versuchen Sie es mit? ' "" "$ {Index}" ""' –

+0

Sie direkt "counter" '.Wiederholen (2, "counter") verwenden können. Exec (http ("$ {counter}"))' keine Notwendigkeit, es zu retten Zu neuer Session var wird automatisch eine erstellt. – cvakiitho

Antwort

1

Convenient Interpolation von Sitzungswerte wie "${index}" funktioniert nur, wenn die Zeichenfolge implizit gatling Ausdruck umgewandelt wird. Diese dunkle Magie von Scala wird durch etwas wie deinen Ausdruck "${index}".toInt gebrochen. Sie werden wahrscheinlich mit der Gatling-Sitzung arbeiten müssen explizit, wie pro the session EL documentation:

....

For example, queryParam("latitude", "${latitude}".toInt + 24) won’t work, the program will blow on "${latitude}".toInt as this String can’t be parsed into an Int.

The solution here would be to pass a function:

session => session("latitude").validate[Int].map(i => i + 24) .