Asp.net core 无法使用Jmeter中的单个读取采样器从.net core signalr服务器读取文本

Asp.net core 无法使用Jmeter中的单个读取采样器从.net core signalr服务器读取文本,asp.net-core,websocket,jmeter,signalr,jmeter-plugins,Asp.net Core,Websocket,Jmeter,Signalr,Jmeter Plugins,我正在尝试加载测试我们的web应用程序,这是一个实时游戏应用程序,使用asp.net内核和signalr技术编写代码。 我们正在使用Peter Doornbosch的JMeter WebSocket采样器进行WebSocket通信。但是我们无法从信号服务器获取任何消息(WebSocket层的ping帧除外)。 我试图读取的文本消息是从服务器到所有连接的客户端的广播,因此我可以看到浏览器客户端已接收到该消息,但jmeter客户端未收到该消息。 我嗅探了到浏览器和jmeter客户端的流量,发现服务器

我正在尝试加载测试我们的web应用程序,这是一个实时游戏应用程序,使用asp.net内核和signalr技术编写代码。 我们正在使用Peter Doornbosch的JMeter WebSocket采样器进行WebSocket通信。但是我们无法从信号服务器获取任何消息(WebSocket层的ping帧除外)。 我试图读取的文本消息是从服务器到所有连接的客户端的广播,因此我可以看到浏览器客户端已接收到该消息,但jmeter客户端未收到该消息。 我嗅探了到浏览器和jmeter客户端的流量,发现服务器消息根本没有在jmeter客户端收到,而是在浏览器中。 因此,我认为我在初始连接建立步骤中丢失了一些参数或头,因此服务器无法检测到jmeter客户端,即使当时webSocket连接已打开,并且webSocket层ping正在到达jmeter客户端

在Jmeter中完成的事情:-

  • HTTP请求到signalr的服务器端点,并获取signalr connectionId作为响应提取它并保留在jmeter变量中
  • 使用Single Write Sampler使用步骤1中获得的connectionId设置新的websocket连接,并发送文本帧以设置信号器数据协议“{”protocol:“json”}”。(如浏览器的开发人员控制台中所示复制)
  • 使用现有连接另一个单写采样器发送文本,调用信号器集线器函数添加到信号器组。在集线器函数中,有一个广播写入所有连接的客户端
  • 使用单个读取采样器从步骤3中提到的服务器读取广播。此步骤总是导致jmeter中出现响应超时错误
  • 任何有使用webSocket作为传输工具使用jmeter和singnalr的经验的人都可以提供一些信息吗? 欢迎任何线索。
    提前感谢

    根据提问者的要求,我的评论作为回答:

    对于写入步骤,我必须在结尾发送一个方形字符,当我检查网站正在做什么时,我可以在浏览器的开发者控制台中看到这一点。据我所知,这标志着你的请求“结束”。如果没有这个方形字符,它对我不起作用

    我不知道这个方形字符是什么unicode字符,但它似乎表示信号器写入的结束

    我检查了unicodes,它可能是这个:□
    unicode 9633

    您检查过本教程了吗:?是的,我们一直在学习上述教程,我更新了问题,解释了我们所做的步骤。谢谢你的写作步骤,我不得不在结尾发送一个方形字符,当我检查网站正在做什么时,我可以在浏览器的开发者控制台中看到这一点。据我所知,这标志着你的请求“结束”。如果没有这个方块字,对我来说就不行了。非常感谢你!!我们在写操作中丢失了这个符号。现在可以在jmeter中看到读取操作。你可以把它作为一个答案,我会把它标记为解决方案。其他人可能会发现它真的很有用。@Christopher Matchew信号器协议有一个为它编写的规范,你缺少的部分是json编码部分中的记录分隔符