Gatling:无法从WebSocket服务器打印响应

时间:2017-11-06 22:39:02

标签: gatling scala-gatling

我在Gatling中使用以下代码:

.exec(ws("Open WS connection")
      .open("/${session_id}/socket?device=other"))
      .pause(2)
.exec(ws("Get client browser id")
      .sendText("[]")    
      .check(wsListen.within(10).until(1).jsonPath("$.[2]").saveAs("clientID")))

它不报告任何失败。我认为这意味着JSON值成功存储在clientID变量中。 当我添加

.exec{
       session =>
        println("clientID: " + session("clientID").as[String])
        session
    }

我收到错误

[ERROR] i.g.c.a.b.SessionHookBuilder $$ anon $ 1 - ' hook-1'与' java.util.NoSuchElementException崩溃:找不到密钥:clientID',转发到下一个 此调用在JMeter中有效。 请帮忙。

1 个答案:

答案 0 :(得分:0)

我想你必须reconciliate ws分支和主分支:

https://gatling.io/docs/2.3/http/websocket/#reconciliate

如参考文档中所述:

  

因此,主HTTP分支和WebSocket分支可以以分离的方式并行地存在于Gatling场景中。执行此操作时,每个流分支都有自己的状态,因此用户可能必须协调它们,例如从WebSocket检查中捕获数据并希望此数据可用于HTTP分支。