在浦发银行的项目中,主机运维连接成功不做任何操作的场景中,用到了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. 通过Terraform创建GCP Pubsub

    1 简介 Terraform是管理许多平台的基础设施的工具,如AWS.GCP和Azure.这篇文章将讲解如何通过Terraform来管理GCP Pub/Sub. 创建GCP项目请参考:初始化一个GCP ...

  2. iOS14新特性

    6月23日凌晨,苹果首次在线上举办全球开发者大会WWDC2020.在大会上,苹果对iOS.iPadOS.macOS.watchOS.tvOS进行更新,其中大家最关心的iOS14,主要更新了36个功能. ...

  3. MQ系列11:如何保证消息可靠性传输(除夕奉上)

    MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 MQ系列3:RocketMQ 架构分析 MQ系列4:NameServer 原理解析 MQ系列5:RocketMQ消息的发送模式 MQ系 ...

  4. 解决使用linux部署nodejs服务测试代码返回中文是乱码

    今天写了个简单的node.js文件 代码如下 var http = require('http'); http.createServer(function (request, response) { ...

  5. node.js接收前端上传的文件并保存到其他位置+后端代码支持进度条

    一:直接上传文件,放入body里 1.前端代码 <input type="file" onchange="sendFiles(this.files)"&g ...

  6. List_集合_介绍&常用方法-ArrayList集合

    List_集合_介绍&常用方法 我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢?接下来,我们一起学习Collection中的常用几个 ...

  7. ReentrantLock介绍及源码解析

    ReentrantLock介绍及源码解析 一.ReentrantLock介绍 ReentrantLock是JUC包下的一个并发工具类,可以通过他显示的加锁(lock)和释放锁(unlock)来实现线程 ...

  8. Nginx03 虚拟主机

    1 虚拟主机 虚拟主机使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台"虚拟"的主机,每一台虚拟主机都具有独立的域名,具有完整的Internet服务器(WWW.FT ...

  9. 影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入

    使用过NAS(Network Attached Storage)的朋友都知道,它可以通过局域网将本地硬盘转换为局域网内的"网盘",简单理解就是搭建自己的"私有云" ...

  10. ROS创建一个基本功能包

    1.mkdir catkin_ws/src 2.cd catkin_ws/src 3.catkin_init_workspace 4.cd ~/catkin_ws/ 5.catkin_make 6.在 ...