2015-04-01 58 views
1

Gatling 2.0。從服務器I'receiving活動的以下JSON:Gatling - 將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事件=會話( 「事件」)爲[SEQ [活動]]

  • 謝謝。

    +0

    你爲什麼要在選項中包裝你的事件? – 2015-04-01 18:27:01

    +0

    @ PierreDAL-PRA。 IIRC,這是2.0中的簽名。它在2.1中改變了。 – 2015-04-01 19:21:46

    +0

    @ PierreDAL-PRA我的不好,在發佈2.0之前它已經改變了:) – 2015-04-01 19:24:07

    回答

    2

    您正在使用transform,它將提取結果轉換爲其他內容。

    在這裏,因爲您沒有指定檢查順序,所以使用默認的find,這隻能得到提取步驟的第一個結果。我懷疑$.chats.chat[0].events.event是你想要的,它可能會返回一個Map(一個javascript對象)。你可能想要$.chats.chat[0].events

    然後關於,存儲和訪問數據到Session中,如果你不習慣Scala,你不應該嘗試將它們存儲在類中。

    取而代之的是,升級到具有改進EL功能的Gatling 2.1,以便您可以編寫諸如${event.foo.bar}(您無法使用Gatling 2.0)的內容。