【问题标题】:Gatling convert Json array to MapGatling 将 Json 数组转换为 Map
【发布时间】:2017-03-25 16:53:09
【问题描述】:

我有 json 例如 ["123","123a","12c3","1f23","e123","r123"] 作为来自休息服务器的响应。

我想将此 json 解析为 Collection 并对其进行迭代并对其中的每个元素发出 exec 请求 如:

服务器 + "/get?param=${el}" 其中 el 将是 123,123a,12c3,1f23,e123 和 r123

我的问题是我该怎么做。

【问题讨论】:

标签: json scala gatling


【解决方案1】:

你可以这样做:

import org.json4s._
import org.json4s.jackson.JsonMethods._
object JSonToMap {
  def main(args: Array[String]) {
    implicit val fmt = org.json4s.DefaultFormats
    val json = parse("""{ "response" : ["123","123a","12c3","1f23","e123","r123"] }""")
    val jsonResp = json.extract[JsonResp]
    println(jsonResp)
    jsonResp.response.foreach { param => 
      println(s"SERVER /get?param=${param}")
    }

  }
  case class JsonResp(response: Seq[String], somethingElse: Option[String])
}

现在您有一个案例类,其中“响应”成员是您的字符串列表。然后您可以操作此列表,但是您需要创建对 SERVER 的请求。

【讨论】:

  • 这不是在回答我的问题。我必须执行请求 1 才能让 Json 解析 Json 并根据请求 1 响应中的元素计数发出多个请求
  • 对不起 - 我不知道你知道哪些部分你知道怎么做,哪些不知道。例如:“执行请求 1 以获取 Json”——这是问题所在吗? “解析 Json” - 上述解决方案是否有效? “根据请求 1 响应中的元素数量发出多个请求” - 这是您在原始问题中没有提到的内容。解析 JSON 后,您有一个包含“请求 1 响应”的所有元素的列表,不是吗?请澄清问题。
【解决方案2】:

你应该试试这样的:

exec(
  http("my request")
    .get("/myrequest")
    .check(status.is(200))
    .check(jsonPath("$").ofType[Seq[String]].saveAs("params"))
).foreach("${params}", "param") {
  exec(http("request with parameter ${param}")
    .get("/get")
    .queryParam("param", "$param")
  )
}

【讨论】:

    猜你喜欢
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    相关资源
    最近更新 更多