[英]Gatling Transform a Json Response
如何轉換 JSON 響應體 -
{
"data": [
{
"id": "1",
"isEditable": false
},
{
"id": "2",
"isEditable": true
}
]
}
對此——
{
"data": [
{
"id": "2",
"isEditable": true
}
]
}
我們如何在這里使用.transformResponse
來做同樣的事情?
任何幫助都感激不盡。
像 function 一樣構建變壓器:
(Session, Response) => Validation[Response]
例如:
import io.gatling.http.response.{Response, StringResponseBody}
import org.json4s._
import org.json4s.jackson.Serialization.write
import org.json4s.jackson.JsonMethods._
implicit val formats: Formats = DefaultFormats
case class Item(id: String, isEditable: Boolean)
case class BodyResponse(data: List[Item])
def transformFunction: (Session, Response) => Validation[Response] =
(sess: Session, response: Response) => {
val updatedBody = (parse(response.body.string)).extract[BodyResponse]
response.copy(
body = new StringResponseBody(
write(updatedBody.copy(data = List(updatedBody.data.last))),
Charset.forName("UTF-8")))
}
並應用於 ProtocolBuilder:
http
.baseUrl("http://host") // Here is the root for all relative URLs
.transformResponse(transformFunction)
請注意,我使用了 Gatling 附帶的 json4s 和兩種類型來解析和操作響應。 您也可以不使用這些類型直接查詢 Json。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.