加特林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")
但这行不编译: 请帮忙。
之后我想从会话中获取此列表,我可以通过以下方式获取:
val events = session(" events")。as [Seq [Events]]
感谢。
答案 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)。