在浦发银行的项目中,主机运维连接成功不做任何操作的场景中,用到了webSocket协议,但是脚本运行中出现webSocke Close报错--解决方案:在webSocket Open Connection下一步添加WebSocket Single Read Sampler,原因如下:jmeter加webscoket的步骤,open connection只是建立链接,read才会读到结果,webscoket Close得知道结果状态,才能关闭

添加WebSocket Single Read Sampler还是有报错,websocket关闭连接还是报错

报错原因:服务器发送了文本消息,没有读取这些消息,消息被缓冲,导致关闭的时候会首先读取这些文本消息返回错误。
解决:通过过滤文本消息的方式,智能关闭连接,jmeter提供了这个方式

灵感来源自下面文章:https://www.codenong.com/53865947/

JMeter WebSocket plugin - Close SignalR connection

我有一个网站使用Asp.NET Core SignalR从服务器动态加载数据。

我在此页面上使用JMeter进行功能测试。我使用1.2.1版中的WebSocket采样器插件来测试SignalR功能。

遵循有关如何将JMeter与WebSocket采样器插件一起使用的blazemeter教程之后,在尝试关闭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文件。

不幸的是,到目前为止,我还没有找到具有多个Read Samplers的更大样本。

  • 嗨,主席先生,能否让我知道您使用的是哪个Signalr版本以及.net的版本?我试图从我的asp.net核心Signalr服务器读取jmeter中的消息,但是即使在浏览器客户端中正确接收到消息,也无法收到任何消息,所以找不到我在做什么。我能够启动websocket连接,并使用写采样器通过套接字将消息写入服务器,但是只能检测到来自信号器服务器的ping消息(使用单个读取采样器),并且未检测到任何文本框架。你能帮我一下吗
  • 我使用浏览器的开发人员工具来了解网站发送和接收的内容。这样,我就可以构建想要的JMeter测试。
  • 您是否使用Single Read
    Sampler从服务器到jmeter客户端收到任何文本框架?我检查了使用提琴手到jmeter客户端和浏览器客户端的网络流量,发现服务器发送的文本帧没有到达jmeter客户端,但到达了浏览器客户端。我正在URL中发送信号发送程序connectionId以便随后写入服务器。除了connectionId之外,我是否还缺少其他东西?如果可以的话,您能否共享jmx文件(websocket采样器部分),否则您将采取什么步骤来建立信号器连接并从中读取?
  • 请创建您自己的Stackoverflow问题。我认为我们不应该滥用评论来解决您的问题。一旦您提出了问题,请告诉我,我会尽力为您提供帮助。
  • stackoverflow.com/questions/54122668/这是您所建议的问题

可能发生的情况是您的服务器发送了一些文本消息,而您的JMeter测试脚本尚未读取该消息。 这些消息被缓冲,当您关闭WebSocket连接时,"关闭采样器"首先读取这些文本消息之一并返回错误。

有一个更改请求,用于增强" Close Sampler"(关闭采样器),并带有忽略此类缓冲区结束消息的选项。 目前,您可以通过将文本框过滤器与封闭式采样器结合使用来实现相同的目的。 请参阅示例目录中的"使用filter sample.jmx智能关闭"示例。

关于JMeter WebSocket插件:JMeter WebSocket插件-关闭SignalR连接--webSocket Close报错的更多相关文章

  1. eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接。

    eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接.全部报错信息如下: Exception in thread & ...

  2. jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory (Could not create connection to database server.)

    今天在学习jmeter的jdbc取样器,发现在配置完JDBC Connection Configuration和JDBC Request后,点击运行.在查看结果树中显示响应数据: Cannot cre ...

  3. 【WPF】弹窗定位、弹窗关闭后再打开的报错

    需求:点击按钮,打开一个弹窗. // 获得窗体实例 Window window = openDesignViewModel.View as Window; // 这是使用了WAF框架 //Window ...

  4. Jmeter跨线程组获取token(彻底解决因格式token报错)

    将token设置为全局变量网上方式方法千千万,但是你就是获取token会失败,不是提示格式错误,就是提示无法获取token,没安装Jmeter的可以查看前两期教程,有详细介绍 在工作当中如果仅仅是一个 ...

  5. svn 卡死住,关闭后,用CleanUp报错解决

    一.问题描述: 经常用SVN的人都知道,有时候更新文件更新着更新一般,突然卡顿住,死在那边动都不动出现提示:svn cleanup failed–previous operation has not ...

  6. js插件设置innerHTML时,在IE8下报错“未知运行时错误”

    问题描述: 网站中使用了一个js插件,设置innerHTML时,在IE8下报错“未知运行时错误”: <div id=”divContainer”> <a name=”link”> ...

  7. react-native 框架升级 安卓第三方插件报错 Android resource linking failed

    亲自经历react-native从0.55升级到0.58的过程,有点坎坷,ios出现的问题还算不多,但是android这里,随着gradle和buildTool的使用升级,导致第三方插件出现各种问题, ...

  8. Extjs4---Cannot read property 'addCls' of null 或者 el is null 关于tab关闭后再打开不显示或者报错

    做后台管理系统时遇到的问题,关于tab关闭后再打开不显示,或者报错 我在新的tabpanel中加入了一个grid,当我关闭再次打开就会报错Cannot read property 'addCls' o ...

  9. mongodb之 非正常关闭启动报错处理

    Mongodb如果非正常关闭,直接启动会报错.查看日志文件. 处理: 需要做的是删除mongod.lock和WiredTiger.lock这两个lock文件,然后执行--repair,这里的mongo ...

  10. elasticsearch无故关闭,Log无报错

    可以看到图中的关闭log之前没有任务报错,这也让博主非常抓狂,这看着就像是人为关闭的,于是博主在群里问是不是有人动过该服务,确认没人关闭后,百度无果,社区上也没找到有关信息,最后灵光一闪,猜测是不是因 ...

随机推荐

  1. “It is required that your private key files are NOT accessible by others. This private key will be ignored.”

    Windows Terminal 通过密钥登录远程vps时提示: "It is required that your private key files are NOT accessible ...

  2. Java运算的精度和溢出问题

    double和float的0.1问题 代码如下 public class demo2 { public static void main(String[] args) { float f=0.1f; ...

  3. Matplotlib学习笔记2 - 循序渐进

    Matplotlib学习笔记2 - 循序渐进 调整"线条" 在Matplotlib中,使用plot函数绘制的线条其实是一种特定的类,matplotlib.lines.Line2D. ...

  4. (13)go-micro微服务公用函数开发

    目录 一 前言 二 SwapTo 通过json tag 进行结构体赋值 三 UserForResponse 类型转化 四 最后 一 前言 在utils目录中新建一个swap.go文件 swap.go中 ...

  5. Linux 查找某一线程是否已运行,并启动的方法

    参考资料:(3条消息) [Linux]守护线程自动重启某个程序的3种常用办法_L7256的博客-CSDN博客_守护进程 自动重启 方法一:使用编写一个监控APP的脚本 start.sh脚本如下:exp ...

  6. C#动态创建对象过程

    创建对象环境 获取当前应用程序集引用的类库详细信息,动态类也将调用此类库 obj类为项目动态编译时用到的模版类,主要提取其using信息用于动态生成的类使用     1 AssemblyName[]r ...

  7. 【力扣】反转链表I和II(迭代和递归)

    前言 有句话叫做:如果面试官跟你看顺眼的话,就给你出一道反转链表,否则就出一道 hard. 所以反转链表不能不会吧,要不面试官想要你都没有机会了. 206. 反转链表 class Solution { ...

  8. XCTF-web新手区

    前言 刷题平台:攻防世界 web简介 WEB是CTF竞赛的主要题型,题目涉及到许多常见的WEB漏洞,诸如XSS.文件包含.代码执行.上传漏洞.SQL注入.还有一些简单的关于网络基础知识的考察,例如返回 ...

  9. Timer的定时调度函数schedule的四种用法

    schedule的四种用法 schedule(task,time) task-所安排的任务  time-执行任务的时间 作用:在时间等于或者超过time的时候执行且仅执行一次 import java. ...

  10. 真正“搞”懂HTTP协议13之HTTP2

    在前面的章节,我们把HTTP/1.1的大部分核心内容都过了一遍,并且给出了基于Node环境的一部分示例代码,想必大家对HTTP/1.1已经不再陌生,那么HTTP/1.1的学习基本上就结束了.这两篇文章 ...