【问题标题】:Jmeter Websocket: Wait for all frames in a responseJmeter Websocket:等待响应中的所有帧
【发布时间】:2019-03-05 20:01:52
【问题描述】:

我正在使用 Jmeter WebSocket 采样器。我已成功连接到 websocket,并且可以发送文本请求。这是一个聊天机器人,我将验证它的响应。

但是,我在 Fiddler 中观察到,websocket 在聊天机器人响应之前以简短的确认响应响应文本请求。

例如,第一个响应是 {"ok":true, "replyto":1151810327491, "type":"ack"} 其中replyto 是消息ID。我真的不需要这些信息。

只有这样才会发送真正的响应(正如我在 Fiddler 中观察到的那样),这是我真正想阅读并添加断言的响应。

我试过Websocket request-response Sampler、Websocket Single Write Sampler(后跟一个Single Read Sampler),也试过通用的Websocket Sampler。

TL;DR:websocket 响应以“帧”形式出现,每个帧都有一个 JSON 响应,我的采样器在第一帧之后立即关闭。

【问题讨论】:

    标签: websocket jmeter


    【解决方案1】:

    如果服务器正在发送您不感兴趣的帧,有两种可能的解决方案。

    如果您事先知道要丢弃哪个帧(例如,发送消息后收到的第一个帧),您可以简单地使用 Single Read Sampler 来读取要丢弃的消息,然后再使用第二个 Single Read Sampler阅读“真实”的信息。

    如果消息序列不是那么容易预测,您可以使用帧过滤器为您丢弃消息,这样它们就不会出现在(读取)采样器中。例如,配置条件为“以文本开头”的文本帧过滤器,并使用字符串 '{"ok":true, "replyto":' 作为匹配值,这将丢弃所有以该字符串开头的帧。如果这不起作用,因为您感兴趣的消息以相同的字符串开头,您可以创建更复杂的条件,即使使用正则表达式也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多