Jmeter 进行websocket接口测试

news/2025/2/28 19:49:09/文章来源:https://www.cnblogs.com/JcHome/p/18651728

什么是websocket协议?

Websocket是基于tcp的一种全双通信协议,客户端与服务器之间通过websocket建立连接后,客户端和服务器之间会长时间保持连接状态(即长连接)。客户端可以向服务器发送数据,服务器也可以主动向客户端推送数据。与http协议不同的是httptcp的单向通信协议,只有客户端向服务器发送请求后,服务器再根据请求信息回复响应数据。

 

Websocket的特点:

1、全双工通信:客户端和服务器之间建立连接后,客户端和服务器可同时发送和接收消息,减少延迟

2、持久连接(即长连接):即客户端和服务器建立连接成功后,可持续保持连接状态。而相对于短连接的http协议,每次请求需要在头部信息中加入cookiesession等信息来鉴权当前请求的合法性。

3、减少带宽消耗:由于减少了http头部的开销,websockethttp传统协议的带宽消耗更少,适合于轮询或长轮询的业务

 

Websocket适用场景:

Websocket适用于需要客户端与服务器长时间保持连接和通信的业务,且可以在建立连接后可以双向发送和接收消息,如在线游戏、实时聊天、股票市场数据推送等。

 

 

Jmeter websocket准备

 

Jmeter默认状态下是不支持websocket协议的,需要在https://jmeter-plugins.org/中下载jmeter扩展的管理插件。

 

操作如下:

 

1、下载plugins-manager.jar包,并放入到jmeterlib/ext目录下

 

 

2、启动jmeterOptions-> Plugins Manager 中进入到jmeter扩展管理界面

 

界面显示如下

 

2、jmeter plugins manager上选择Available plugins,然后搜索websocket的扩展

 

这里有两个扩展,这两个都可以实现websocket协议的接口测试。可根据需要进行安装即可。

1个:Websocket Sampler by Maciej Zaleski 是将websocket的建立连接、数据发送和接收、关闭连接都融合在一个采样器中

2个:Websocket Samplers by Peter Doornbosch 是将websocket通信过程拆分成建立连接、数据发送、数据接收、检查连接状态、关闭连接都拆分成单个采样器。更具有操作性,下面就以第2个进行说明。

安装成功后,在采样器中就可以看到可以使用websocket的选项

 

 

Websocket 采样器说明:

WebSocket Open Connection  建立连接,即客户端与服务器之间建立连接

WebSocket Ping/Pong        检查客户端与服务器之间是否保持连接状态,一般用来测客户端和服务器连接的稳定性。或者检测当前连接是否保持连接状态。

WebSocket Single Read Sampler 接收服务器端推送过来的信息

WebSocket Single Write Sampler 客户端向服务器发送数据

WebSocket Close             关闭连接

WebSocket request-response Sampler  可以用来向服务器发送数据并接收服务器推送过来的信息

 

Websocket实战:

1、首先建立websocket客户端与服务器的连接,跟http接口请求差不多,就是要设置请求协议、服务器地址、端口号、接口拼接地址。websocket协议分为:ws(类似于http)、wss(类似于https协议)。

 

1、向服务器端发送请求数据

 

 

 

1、接收服务器响应数据

4、检测服务器的连通性

 

 

5、关闭连接

 

 

运行结果:

建立连接时的请求数据

 

发送websocket请求的数据

 

 

服务器响应的信息:

因为当前这个业务服务器会响应多段数据,所以这里就设置循环多次获取数据,就能拿到所有的数据信息。如果服务器一次性响应所有信息,可以不用循环去接收数据。具体根据实际业务调整

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/863800.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode下载vetur和vue-helper插件之后删除键(backspace)失效

最近我在学习前端的过程中,使用vscode下载的vue的插件:vetur和vue-helper这两个 但随后在写代码的时候发现删除键(backspace)不能使用,其他键都能正常使用,也可以用鼠标选中右键剪切/删除 最后发现是上面的插件会占用backspace按键作为插件的功能键 解决方法 点击左上角—…

使用 C# WPF 根据 SEGY 数据绘制二维地震图

一、引言 在地震勘探领域,SEGY(Society of Exploration Geophysicists Y-data)文件格式是常见的地震数据存储格式。对于地震数据的可视化,通常会将 SEGY 文件中的振幅数据通过图像进行展示,以便进行分析。本文将介绍如何使用 C# WPF 应用程序绘制基于 SEGY 数据的二维地震…

为什么浏览器打开的网页默认是英文显示?

最近在学习的时候遇到的问题,打开一些软件的官网默认都是英文(即使这些网站是国内做的)。 其中一个原因是浏览器的默认设置语言是英文 修改浏览器默认语言 以Google Chrome浏览器为例: 右上角三个点—>设置 左边找到“语言” 将中文置顶

LeetCode 762[二进制表示中质数个计算置位]

LeetCode 762[二进制表示中质数个计算置位]题目 链接 LeetCode 762[二进制表示中质数个计算置位] 详情实例提示题解 思路 两个条件: 1、二进制位为1 2、满足条件1的个数为质数首先 for 循环遍历区间for (int i = left; i < right + 1; i++){int iCount = 0;//二进制位为1的…

[Web Fronted] 前端框架: React

序部分开源项目是基于 Web 前端框架 React 构建的,有必要了解一二。避免一脸懵逼,不知道怎么修改相关代码和配置概述: React React 的简介React 起源于 Facebook 的内部项目因为该公司对市场上所有 JavaScript MVC 框架 都不满意,就决定自己写一套,用来架设 Instagram 的网…

15C++循环结构-while循环(2)——教学

1、while语句的应用; 2、双精度实数double及科学计数法; 3、分数化为小数一、while语句的应用 (第44课 角谷猜想)参考视频1 问题:对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1,这就是由日本数学家角谷静夫发现的…

Xshell 8 Build 0065中文免安装绿色版

前言 Xshell8是一个非常受欢迎的远程连接管理软件,它的界面简单易懂,用起来特别方便。能支持好多种连接方式,比如SSH1、SSH2、SFTP、TELNET等等,还有串行协议和其他一些高级功能,基本上你想连什么都能满足。而且,它还支持好多种不同的终端类型,比如VT100、VT220、XTERM、…

大语言模型提示技巧(四)-文本概括

文本概括是大语言模型的常用功能之一,我们总结一段文字、一篇文章的主要内容,一篇论文的摘要,甚至一本书的简介都属于文本概括的范畴。文本概括是大语言模型的常用功能之一,我们总结一段文字、一篇文章的主要内容,一篇论文的摘要,甚至一本书的简介都属于文本概括的范畴。…

软件设计师考试知识点

https://www.cnblogs.com/mh20131118/p/11334612.html https://www.cnblogs.com/blog-cjz/p/16005106.html 本人已将笔记、历年真题与解析、备考方法整理压缩至【百度网盘】,需要资源的同学可以通过点击下面云盘链接进行保存下载。链接失效的话请在文章下面评论或私信我,我看…

DVWA靶场Insecure CAPTCHA(不安全验证)漏洞所有级别通关教程及源码审计

Insecure CAPTCHA(不安全验证) Insecure CAPTCHA(不安全验证)漏洞指的是在实现 CAPTCHA(完全自动化公共图灵测试区分计算机和人类)机制时,未能有效保护用户输入的验证信息,从而使得攻击者能够绕过或破解该验证机制。这类漏洞通常出现在网络应用程序中,目的是防止自动化…

摄影

曝光三要素 光圈(F):控制进光量的装置 快门(1/x):接收光线的时间 感光度(ISO):感光器件对光线的敏感程度 快门(1/x) 快门快 数值小 画面暗 快门慢 数值大 画面亮 快门影响画面动态模糊(如果要保证拍摄的物体,不模糊,快速速度要大于物体运动的速度) 安全快门:保证…

浅谈文本匹配

本文探讨了文本匹配的演变,从字面匹配到语义匹配,分析了各自的特点与挑战。字面匹配关注文本的精确重合度,而语义匹配则试图理解文本的深层含义。尽管语义匹配在处理复杂关系时更具优势,但仍面临长短文本匹配、词序感知和多实体关系等难题。期待未来大模型能进一步提升语义…