如何解决Gatling 转换 Json 响应
如何从 -
转换 JSON 响应正文{
"data": [
{
"id": "1","isEditable": false
},{
"id": "2","isEditable": true
}
]
}
为此 -
{
"data": [
{
"id": "2","isEditable": true
}
]
}
我们如何在这里使用 .transformResponse
来做同样的事情?
任何帮助将不胜感激。
解决方法
像函数一样构建转换器:
(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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。