Wie zu verwenden Rückkehr eines gatling-Anfrage in einer weiteren Anfrage - Scala
In den folgenden code, ich erhalte ein token in der ersten Gatling-Anfrage, speichern es in einer Variablen namens " auth. Jedoch, wenn ich versuche, es in die zweite Anforderung ist das senden leerer string statt der variable auth. So aus irgendeinem Grund, den auth-string wird nicht aktualisiert, bis die Zeit Sie wird verwendet in der zweiten Anfrage. Kann jeder jeden schlagen Abhilfe, so dass ich kann verwenden Sie den zurückgegebenen Wert in einer Anfrage in einer weiteren Anfrage?
Code:
val headers_10 = Map("Content-Type" -> "application/x-www-form-urlencoded")
var a= "[email protected]"
var auth = ""
val scn = scenario("Scenario Name") //A scenario is a chain of requests and pauses
.exec(http("request_1") //Here's an example of a POST request
.post("/token")
.headers(headers_10)
.formParam("email", a)
.formParam("password", "password")
.transformResponse { case response if response.isReceived =>
new ResponseWrapper(response) {
val a = response.body.string
auth = "Basic " + Base64.getEncoder.encodeToString((a.substring(10,a.length - 2) + ":" + "junk").getBytes(StandardCharsets.UTF_8))
}
})
.pause(2)
.exec(http("request_2")
.get("/user")
.header("Authorization",auth)
.transformResponse { case response if response.isReceived =>
new ResponseWrapper(response) {
val a = response.body.string
}
})
Du musst angemeldet sein, um einen Kommentar abzugeben.
Speichern Sie den Wert in der session. So etwas wie dies funktionieren wird, auch wenn Sie zu zwicken regex und vielleicht noch einige andere details:
Hier ist die Dokumentation über die "Prüfungen", die Sie verwenden können, zu erfassen, Werten aus einer Antwort:
http://gatling.io/docs/2.2.2/http/http_check.html
Hier ist die Dokumentation, auf die gatling-EL, das ist der einfachste Weg, um die Verwendung von session-Variablen (das ist der "${auth}" syntax in der letzten Zeile oben):
http://gatling.io/docs/2.2.2/session/expression_el.html