Ausgabe
So erhalten Sie den Rückgabewert von der For-Schleife und übergeben ihn an .body(StringBody(session => in Gatling mit Scala
Ich habe eine Methode mit einer For-Schleife erstellt, um ein String-Array in Gatling mit Scala zu generieren
def main(args: Array[String]): Unit = {
var AddTest: Array[String] = Array[String]()
for (i <- 0 to 3) {
val TestBulk: String =
s"""{ "name": "Perftest ${Random.alphanumeric.take(6).mkString}",
"testID": "00000000-0000-0000-0000-000000006017",
"typeId": "00000000-0000-0000-0000-000000011001",
"statusId": "00000000-0000-0000-0000-000000005058"};"""
AddTest = TestBulk.split(",")
// val TestBulk2: Nothing = AddTest.mkString(",").replace(';', ',')
// println(TestBulk)
}
}
jetzt möchte ich den Rückgabewert an .body(StringBody(session =>
.exec(http("PerfTest Bulk Json")
.post("/PerfTest/bulk")
.body(StringBody(session =>
s"""[(Value from the for loop).mkString(",").replace(';', ',')
]""".stripMargin)).asJson
Bitte helfen Sie mir mit den Möglichkeiten. Bitte lassen Sie es mich wissen, wenn
Lösung
Sie brauchen dafür keine for-Schleife (oder var
oder split
). Musst du auch ;
nirgendwo haben, also ist letztes replace
sinnlos.
val ids = """
"testId": "foo",
"typeId": "bar",
"statusId": "baz"
"""
val data = (1 to 3)
.map { _ => Random.alphanumeric.take(6).mkString }
.map { r => s""""name": "Perftest $r"""" }
.map { s => s"{ $s, $ids }" }
.mkString("[", ",", "]")
exec("foo").post("/bar").body(_ => StringBody(data)).asJson
(Ich habe [
und ]
um Ihre generierte Zeichenfolge herum hinzugefügt, damit sie wie ein gültiger JSON aussieht).
Alternativ haben Sie wahrscheinlich eine Bibliothek, die Karten und Listen sofort in json konvertiert (ich kenne Gatling nicht, aber es muss etwas geben). Ein etwas saubererer Weg, dies zu tun, wäre so etwas:
val ids = Map(
"testId" -> "foo",
"typeId" -> "bar",
"statusId" -> "baz"
)
val data = (1 to 3)
.map { _ => Random.alphanumeric.take(6).mkString }
.map { r => ids + ("name" -> s"Perftest $r") }
exec("foo").post("/bar").body(_ => StringBody(toJson(data))).asJson
Beantwortet von – Dima
Antwort geprüft von – Clifford M. (FixError Volunteer)