JMeter WebSocket 插件 - 关闭 SignalR 连接
JMeter WebSocket plugin - Close SignalR connection
我有一个网站使用 Asp.NET Core SignalR 从服务器动态加载数据。
我使用JMeter 对该页面进行功能测试。我使用版本 1.2.1 中的 WebSocket sampler 插件来测试 SignalR 功能。
以下 this blazemeter tutorial on how to use JMeter with the WebSocket sampler plugin 我在尝试关闭 SignalR 连接时总是遇到错误。
我的 JMeter 采样器设置如下:
- WebSocket 打开连接
- WebSocket 请求-响应采样器
- WebSocket 单读采样器
- WebSocket 关闭
为了关闭连接,我使用了名为 WebSocket Close
的 WebSocket 采样器。此采样器允许提供 Close status
.
我尝试提供不同的 Close status
代码。但是实际上没有提供的代码得到确认,并且总是返回错误消息:
Response code: WebSocket error: unsuccesful close.
Response message: WebSocket error: received not a close frame, but Text frame with text ...
如何在 JMeter 中正确关闭此连接?
更新
我发现这取决于我使用了多少采样器。如果我在读取采样器之前使用写入采样器,则关闭似乎有效。喜欢:
- WebSocket 打开连接
- WebSocket 请求-响应采样器
- WebSocket 单读采样器
- WebSocket 单写采样器
- WebSocket 关闭
但是如果我想要一个以上的读取采样器,它就不起作用了。知道我如何正确使用多重读取采样器吗?
更新 2
我重新阅读了插件文档并检查了示例 JMeter 文件 here。
不幸的是,到目前为止我还没有找到具有多个读取采样器的更大样本。
可能发生的情况是您的服务器发送了一些您的 JMeter 测试脚本尚未读取的文本消息。这些消息被缓冲,当您关闭 WebSocket 连接时,"Close Sampler" 首先读取其中一条文本消息,然后 returns 出错。
有一个增强 "Close Sampler" 的更改请求,其中包含忽略此类缓冲端消息的选项。目前,您可以通过将文本框过滤器与关闭采样器相结合来实现相同的目的;请参阅 samples 目录中的 "Smart close with filter sample.jmx" 示例。
我有一个网站使用 Asp.NET Core SignalR 从服务器动态加载数据。
我使用JMeter 对该页面进行功能测试。我使用版本 1.2.1 中的 WebSocket sampler 插件来测试 SignalR 功能。
以下 this blazemeter tutorial on how to use JMeter with the WebSocket sampler plugin 我在尝试关闭 SignalR 连接时总是遇到错误。
我的 JMeter 采样器设置如下:
- WebSocket 打开连接
- WebSocket 请求-响应采样器
- WebSocket 单读采样器
- WebSocket 关闭
为了关闭连接,我使用了名为 WebSocket Close
的 WebSocket 采样器。此采样器允许提供 Close status
.
我尝试提供不同的 Close status
代码。但是实际上没有提供的代码得到确认,并且总是返回错误消息:
Response code: WebSocket error: unsuccesful close.
Response message: WebSocket error: received not a close frame, but Text frame with text ...
如何在 JMeter 中正确关闭此连接?
更新
我发现这取决于我使用了多少采样器。如果我在读取采样器之前使用写入采样器,则关闭似乎有效。喜欢:
- WebSocket 打开连接
- WebSocket 请求-响应采样器
- WebSocket 单读采样器
- WebSocket 单写采样器
- WebSocket 关闭
但是如果我想要一个以上的读取采样器,它就不起作用了。知道我如何正确使用多重读取采样器吗?
更新 2
我重新阅读了插件文档并检查了示例 JMeter 文件 here。 不幸的是,到目前为止我还没有找到具有多个读取采样器的更大样本。
可能发生的情况是您的服务器发送了一些您的 JMeter 测试脚本尚未读取的文本消息。这些消息被缓冲,当您关闭 WebSocket 连接时,"Close Sampler" 首先读取其中一条文本消息,然后 returns 出错。
有一个增强 "Close Sampler" 的更改请求,其中包含忽略此类缓冲端消息的选项。目前,您可以通过将文本框过滤器与关闭采样器相结合来实现相同的目的;请参阅 samples 目录中的 "Smart close with filter sample.jmx" 示例。