【问题标题】:How to get the return value from For loop and pass it to .body(StringBody(session => in Gatling using Scala如何从 For 循环中获取返回值并将其传递给 .body(StringBody(session => 在 Gatling 中使用 Scala
【发布时间】:2022-10-08 01:13:47
【问题描述】:

如何从 For 循环中获取返回值并将其传递给 .body(StringBody(session => 在 Gatling 中使用 Scala

我已经创建了一个带有 for 循环的方法来在 scala 中生成字符串数组

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)
    }
  }

现在我想将返回值传递给 .body(StringBody(session =>

    .exec(http("PerfTest Bulk Json")
      .post("/PerfTest/bulk")
      .body(StringBody(session =>
        s"""[(Value from the for loop).mkString(",").replace(';', ',')
]""".stripMargin)).asJson

请帮助我的可能性 请让我知道是否

【问题讨论】:

    标签: scala performance for-loop gatling scala-gatling


    【解决方案1】:

    为此,您不需要 for 循环(或 varsplit)。您在任何地方也没有;,所以最后一个replace 毫无意义。

        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
    

    (我在生成的字符串周围添加了[] 以使其看起来像有效的json)。

    【讨论】:

      猜你喜欢
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2021-09-11
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多