【发布时间】:2023-04-07 03:31:01
【问题描述】:
我有一个网站使用 Asp.NET Core SignalR 从服务器动态加载数据。
我使用 JMeter 在此页面上进行功能测试。我使用 1.2.1 版本中的 WebSocket sampler 插件来测试 SignalR 功能。
按照this blazemeter tutorial 了解如何将JMeter 与WebSocket sampler plugin 一起使用,我在尝试关闭SignalR 连接时总是出错。
我的 JMeter 采样器设置如下:
- WebSocket 打开连接
- WebSocket 请求-响应采样器
- WebSocket 单次读取采样器
- WebSocket 关闭
为了关闭连接,我使用名为 WebSocket Close 的 WebSocket 采样器。此采样器允许提供Close status。
我尝试提供不同的Close status 代码。但实际上没有提供的代码得到确认,并且总是返回错误消息:
响应代码:WebSocket 错误:关闭失败。
响应消息:WebSocket 错误:收到的不是关闭框架,而是带有文本的文本框架 ...
如何在 JMeter 中正确关闭此连接?
更新
我发现这取决于我使用的采样器数量。如果我在读取采样器之前使用写入采样器,则关闭似乎有效。喜欢:
- WebSocket 打开连接
- WebSocket 请求-响应采样器
- WebSocket 单次读取采样器
- WebSocket 单次写入采样器
- WebSocket 关闭
但是,如果我想要一个以上的读取采样器,它就行不通了。知道如何正确使用多重读取采样器吗?
更新 2
我重新阅读了插件文档并检查了示例 JMeter 文件here。 不幸的是,到目前为止,我还没有找到具有多个读取采样器的更大样本。
【问题讨论】:
-
您好,先生,您能告诉我您使用的是哪个信号器版本以及哪个 .net 版本吗?我试图从我的 asp.net 核心信号器服务器读取 jmeter 中的消息,但无法收到任何消息,即使浏览器客户端正确接收消息,所以无法找到我做错了什么。我能够启动 websocket 连接并使用 write sampler 通过套接字向服务器写入消息,但只能检测到来自信号器服务器的 ping 消息(使用单个读取采样器)并且没有检测到文本帧。你能帮帮我吗
-
我使用浏览器的开发者工具来了解网站发送和接收的内容。有了这个,我可以构建我想要的 JMeter 测试。
-
您是否使用 Single Read Sampler 从您的服务器收到任何文本帧到 jmeter 客户端?我使用 fiddler 检查了到 jmeter 客户端和浏览器客户端的网络流量,发现服务器发送的文本帧没有到达 jmeter 客户端,而是到达了浏览器客户端。我在 url 中发送信号器 connectionId 以便随后写入服务器。除了所需的 connectionId 之外,我是否遗漏了任何其他内容?如果您可以分享您的 jmx 文件(websocket 采样器部分),您能否分享您的 jmx 文件,否则您需要采取哪些步骤来建立信号器连接并从中读取?
-
请创建您自己的 Stackoverflow 问题。我认为我们不应该滥用 cmets 来解决您的问题。一旦你创建了你的问题,请告诉我,我可以在那里为你提供帮助。
标签: websocket jmeter asp.net-core-signalr