Jmeter Websocket:等待响应中的所有帧

时间:2019-03-05 20:01:53

标签: websocket jmeter

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

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

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

然后才发送真实的响应(正如我在Fiddler中观察到的那样),这是我实际上想阅读并置为断言的响应。

我尝试过Websocket请求响应采样器,Websocket单写采样器(紧随其后的是Single Read采样器),并且尝试了通用的Websocket采样器。

TL; DR:websocket响应来自“框架”,每个框架都有一个JSON响应,我的采样器在第一帧之后立即关闭。

1 个答案:

答案 0 :(得分:0)

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

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

如果消息的顺序不太容易预测,则可以使用帧过滤器为您丢弃消息,这样它们就不会显示在(读取)采样器中。例如,配置条件为“以文本开头”的文本框架过滤器,并使用字符串'{“ ok”:true,“ replyto”:'作为匹配值,这将丢弃所有以该字符串开头的框架。如果由于您感兴趣的消息以相同的字符串开头而无法解决问题,则即使使用正则表达式,您也可以创建更复杂的条件。