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

时间:2015-04-01 17:39:21

标签: scala gatling

加特林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]]

  2. 感谢。

1 个答案:

答案 0 :(得分:2)

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

这里,由于您没有指定检查常规,因此使用默认值find,它只能获取提取步骤的第一个结果。我怀疑$.chats.chat[0].events.event是你想要的,它可能会返回一个Map(一个javascript对象)。您可能需要$.chats.chat[0].events

然后关于,存储和访问数据到会话中,如果您不习惯Scala,则不应尝试将它们存储在类中。

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