[FIXED] So erhalten Sie den Rückgabewert von der For-Schleife und übergeben ihn an .body(StringBody(session => in Gatling mit Scala

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 varoder split). Musst du auch ;nirgendwo haben, also ist letztes replacesinnlos.

    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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like

[FIXED] Spark führt Zeilen in einer Zeile zusammen

Ausgabe Ich habe folgenden Datenrahmen: #+-----------------------------+--------+---------+---------+ #|PROVINCE_STATE|COUNTRY_REGION|2/1/2020|2/10/2020|2/11/2020| #+--------------+--------------+--------+---------+---------+ #| -| Australia| 12| 15 | 15| #+--------------+--------------+--------+---------+---------+ Ich muss…