allererst Sie Zufallszahl jedes Mal erzeugt werden soll, so hat OrderRef
ein Verfahren sein, wie:
def orderRef() = Random.nextInt(Integer.MAX_VALUE)
Side Kommentar: von Scala Konvention: Name camelcase(), während sie neue Werte erzeugt , ohne ;
am Ende.
Zur Verwendung der vorbereiteten Methode können Sie die Gatling EL-Zeichenfolge nicht verwenden. Syntax ist sehr begrenzt und grundsätzlich "${OrderRef}"
sucht nach Variable mit Namen OrderRef
in Gatling Session.
richtige Weg ist Expression Funktion wie zu verwenden:
.exec(
http("OrderCreation")
.post("/abc/orders")
.body(StringBody(session => s"""{ "orderReference": "${orderRef()}" }""")).asJSON
)
Hier Sie erstellen anonyme Funktion unter Gatling Session
und Rückkehr String
als Körper. Die Zeichenfolge wird über den Standard-Scala-String-Interpolationsmechanismus erstellt und verwendet die zuvor erstellte Funktion orderRef()
.
Natürlich können Sie Scala String Interpolation auslassen wie:
.body(StringBody(session => "{ \"orderReference\": " + orderRef() +" }")).asJSON
, die nicht sehr bevorzugten Stil, wenn Scala mit.
Weitere Details finden Sie unter Gatling Dokumentation zu Request Body und lesen Sie mehr über Galting EL syntax.
Eine alternative Möglichkeit ist es, eine Zuführung zu definieren:
// Define an infinite feeder which calculates random numbers
val orderRefs = Iterator.continually(
// Random number will be accessible in session under variable "OrderRef"
Map("OrderRef" -> Random.nextInt(Integer.MAX_VALUE))
)
val scn = scenario("RandomJsonBody")
.feed(orderRefs) // attaching feeder to session
.exec(
http("OrderCreation")
.post("/abc/orders")
// Accessing variable "OrderRef" from session
.body(StringBody("""{ "orderReference": "${OrderRef}" }""")).asJSON
)
Hier ist die Situation anders, zuerst wir den Einzug definieren, dann wir es auf Sitzung anhängen und dann seinen Wert in Anforderungstext über Gatling EL verwenden Zeichenfolge. Dies funktioniert, während der Feeder-Wert von Feeder von Gatling vor einem an die Sitzung angehängten virtuellen Benutzer genommen wird. Sehen Sie mehr über Feeder here.
Empfehlung: Wenn Sie ein einfaches Szenario haben, beginnen Sie mit der ersten Lösung. Wenn es komplexer ist, denken Sie über Feeder nach.
Genießen Sie
Vielen Dank ...Du hast mir viel Zeit gespart :) –
Gern geschehen :) – Teliatko
Der erste "richtige" Weg, es zu tun, hat bei mir nicht funktioniert. Der alternative Weg hat funktioniert. Vielen Dank. –