关于JMeter WebSocket插件:JMeter WebSocket插件-关闭SignalR连接--webSocket Close报错
在浦发银行的项目中,主机运维连接成功不做任何操作的场景中,用到了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报错的更多相关文章
- eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接。
		eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接.全部报错信息如下: Exception in thread & ... 
- jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory (Could not create connection to database server.)
		今天在学习jmeter的jdbc取样器,发现在配置完JDBC Connection Configuration和JDBC Request后,点击运行.在查看结果树中显示响应数据: Cannot cre ... 
- 【WPF】弹窗定位、弹窗关闭后再打开的报错
		需求:点击按钮,打开一个弹窗. // 获得窗体实例 Window window = openDesignViewModel.View as Window; // 这是使用了WAF框架 //Window ... 
- Jmeter跨线程组获取token(彻底解决因格式token报错)
		将token设置为全局变量网上方式方法千千万,但是你就是获取token会失败,不是提示格式错误,就是提示无法获取token,没安装Jmeter的可以查看前两期教程,有详细介绍 在工作当中如果仅仅是一个 ... 
- svn 卡死住,关闭后,用CleanUp报错解决
		一.问题描述: 经常用SVN的人都知道,有时候更新文件更新着更新一般,突然卡顿住,死在那边动都不动出现提示:svn cleanup failed–previous operation has not ... 
- js插件设置innerHTML时,在IE8下报错“未知运行时错误”
		问题描述: 网站中使用了一个js插件,设置innerHTML时,在IE8下报错“未知运行时错误”: <div id=”divContainer”> <a name=”link”> ... 
- react-native 框架升级 安卓第三方插件报错 Android resource linking failed
		亲自经历react-native从0.55升级到0.58的过程,有点坎坷,ios出现的问题还算不多,但是android这里,随着gradle和buildTool的使用升级,导致第三方插件出现各种问题, ... 
- Extjs4---Cannot read property 'addCls' of null 或者 el is null    关于tab关闭后再打开不显示或者报错
		做后台管理系统时遇到的问题,关于tab关闭后再打开不显示,或者报错 我在新的tabpanel中加入了一个grid,当我关闭再次打开就会报错Cannot read property 'addCls' o ... 
- mongodb之 非正常关闭启动报错处理
		Mongodb如果非正常关闭,直接启动会报错.查看日志文件. 处理: 需要做的是删除mongod.lock和WiredTiger.lock这两个lock文件,然后执行--repair,这里的mongo ... 
- elasticsearch无故关闭,Log无报错
		可以看到图中的关闭log之前没有任务报错,这也让博主非常抓狂,这看着就像是人为关闭的,于是博主在群里问是不是有人动过该服务,确认没人关闭后,百度无果,社区上也没找到有关信息,最后灵光一闪,猜测是不是因 ... 
随机推荐
- 简述HashSet的扩容机制以及我们在重写equals()的时候为何会重写hashcode()
			简述HashSet的扩容机制以及我们在重写equals()的时候为何会重写hashcode() 摘要:在背面试知识点的时候存在这样一条著名的面试题:我们重写equals()的时候为什么要重写has ... 
- iOS开发小结 - 通过PUT请求上传数据
			一般服务器上传数据一般都是用POST请求,这样通过AFNetworking的POST请求稳稳的,但是有一天遇到一个问题,服务器上传数据用的是PUT请求,发现用AFNetworking并不是那么好用,今 ... 
- strapi系列-如何创建一个定时任务-Cron Jobs
			Cron 是什么? Cron 有多种用途. Cron Jobs 用于安排服务器上的任务运行.它们最常用于自动化系统管理或维护.然而,它们也与 Web 应用程序的构建相关. Web 应用程序可能需要在各 ... 
- 动力节点—day05
			数组 Java语言当中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object 数组实际上是一个容器,可以同时容纳多个元素(数组是一个数据集合),多个数据元素的类型必须是一致的 数组当中 ... 
- 方法引用_通过类名引用静态成员方法-方法引用_通过super引用父类的成员方法
			方法引用_通过类名引用静态成员方法 由于在java.lang .Nath类中已经存在了静态方法 abs,所以当我们需要通过Lambda来调用该方法时,有两种写法.首先是函数式接口∶ 第一种写法是使用L ... 
- Autodesk Maya2023 破解版安装教程(小白看了也说understand)
			前言 Maya是Autodesk旗下的著名三维建模和动画软件,应用对象是专业的影视广告,角色动画,电影特技等.Maya功能完善,工作灵活,制作效率极高,渲染真实感极强,是电影级别的高端制作软件. 安装 ... 
- cv::Mat::step详解
			1.简介 step的几个类别区分: step:矩阵第一行元素的字节数 step[0]:矩阵第一行元素的字节数 step[1]:矩阵中一个元素的字节数 step1(0):矩阵中一行有几个通道数 step ... 
- vue组件的对象式写法,vue中的h函数
			render:将虚拟dom转为真实dom h函数:创建的是vnode,也可以成为createVnode函数 语法:h(元素名称 ,这个元素的数据,子集) 第一个参数:可以为一个html标签,一个组件, ... 
- 欢迎来到 SIXIANG 的 blog~
			很欢迎呢~ SX,海豹叉 Luogu OIer,whker,养老人 
- IP地址后面/24/26/27/28/29/30网关数量分别是多少?如何计算?
			转载csdn: https://blog.csdn.net/jinfengyunIDC/article/details/112575286 
