簡體   English   中英

加特林變換 Json 響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM