Gatling - 将 json 响应转换为案例列表 类

Gatling - convert json response to List of case classes

加特林 2.0。我从服务器收到以下 json 事件:

[  
   {  "a":"a","b":"b","c":"c","d":"d"},
   {  "a":"a1","b":"b1","c":"c1","d":"d2" },
   { "a":"a2","b":"b2","c":"c2","d":"d3" }
]

现在我想将其作为事件列表存储在会话中类

case class Event(a:String:b:String,d:String)

我正在尝试执行以下操作

jsonPath("$.chats.chat[0].events.event").ofType[Seq[Any]].transform(_.map{ l =>

                Some(Event(l(0).asInstanceOf[String], l(1).asInstanceOf[String],l(3).asInstanceOf[String])).saveAs("events")

但是这一行不编译: 请帮忙。

  1. 之后我想从会话中获取这个列表,我可以通过以下方式做到这一点:

    val events = session("events").as[Seq[Events]]

谢谢。

您正在使用 transform,它获取提取结果并将其转换为其他内容。

在这里,因为您没有指定检查序数,所以您使用默认值 find,这只会让您获得提取步骤的第一个结果。我怀疑 $.chats.chat[0].events.event 是你想要的,它可能 return 一个地图(一个 javascript 对象)。你可能想要 $.chats.chat[0].events.

然后关于在 Session 中存储和访问数据,如果你不习惯 Scala,你不应该尝试将它们存储在 类 中。

相反,升级到具有改进的 EL 功能的 Gatling 2.1,这样你就可以编写类似 ${event.foo.bar} 的东西(你不能使用 Gatling 2.0)。