0

我在 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
    }

我收到错误

[错误] igcabSessionHookBuilder$$anon$1 - 'hook-1' 因 'java.util.NoSuchElementException: key not found: clientID' 而崩溃,转发到下一个此调用在 JMeter 中有效。请帮忙。

4

1 回答 1

0

我猜你必须reconciliatews 分支和主分支:

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

如参考文档中所述:

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

于 2018-04-24T13:18:29.127 回答