Gatling 将 Json 数组转换为 Map
Gatling convert Json array to Map
我有 json 例如 ["123","123a","12c3","1f23","e123","r123"]
作为休息服务器的响应。
我想将此 json 解析为 Collection 并对其进行迭代并对其中的每个元素发出 exec 请求
例如:
服务器 + "/get?param=${el}"
其中 el 将是 123,123a,12c3,1f23,e123 和 r123
我的问题是我该怎么做。
你可以这样做:
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])
}
现在您有一个案例 class,其中 "response" 成员是您的字符串列表。然后您可以操作此列表,但是您需要创建对 SERVER 的请求。
你应该尝试这样的事情:
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")
)
}
我有 json 例如 ["123","123a","12c3","1f23","e123","r123"] 作为休息服务器的响应。
我想将此 json 解析为 Collection 并对其进行迭代并对其中的每个元素发出 exec 请求 例如:
服务器 + "/get?param=${el}" 其中 el 将是 123,123a,12c3,1f23,e123 和 r123
我的问题是我该怎么做。
你可以这样做:
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])
}
现在您有一个案例 class,其中 "response" 成员是您的字符串列表。然后您可以操作此列表,但是您需要创建对 SERVER 的请求。
你应该尝试这样的事情:
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")
)
}