相关疑难解决方法(0)

在WebSocket场景中进行状态检查

我有一个加特林场景,我订阅了一个websocket,想检查传入消息的内部一致性。

例如,通过websocket传来的消息是<user>: <sequence number>,我想检查每个用户字符串的序列号是连续的,并且从1开始递增。

a: 1
b: 1
a: 2
b: 2
a: 1 // <= this would be an error because last a was 2, so should be 3
Run Code Online (Sandbox Code Playgroud)

我的第一种方法是将类似a的内容存储Map[String, Int]在会话变量中。但是在我看来,加泰罗尼亚式Web服务API不允许存储非字符串会话变量:

这(只是将通过WS获得的所有内容串联在一起)进行编译:

def updateState(text: String, session: Session): String = {
  session("wsState").as[String] + "\n" + text
}

val scn = scenario("String")
  .exec(ws("Connect WS")
    .open("/indexWS?topic=${topic}")
    .check(
      wsListen
        .within(3600.seconds)
        .until(10)
        .message
        .find
        .transform(updateState _)
        .saveAs("wsState"))
)
Run Code Online (Sandbox Code Playgroud)

但是,只要updateState函数返回字符串以外的内容,它就不再编译

def updateState(text: String, session: Session): Map[String, Int] = {
  session("counts").as[Map[String, Int]] …
Run Code Online (Sandbox Code Playgroud)

scala websocket gatling

5
推荐指数
0
解决办法
995
查看次数

标签 统计

gatling ×1

scala ×1

websocket ×1