我在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中有效。 请帮忙。
答案 0 :(得分:0)
我想你必须reconciliate
ws分支和主分支:
https://gatling.io/docs/2.3/http/websocket/#reconciliate
如参考文档中所述:
因此,主HTTP分支和WebSocket分支可以以分离的方式并行地存在于Gatling场景中。执行此操作时,每个流分支都有自己的状态,因此用户可能必须协调它们,例如从WebSocket检查中捕获数据并希望此数据可用于HTTP分支。