使用JMeter测试基于WebSocket协议的服务

这篇具有很好参考价值的文章主要介绍了使用JMeter测试基于WebSocket协议的服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用JMeter测试基于WebSocket协议的服务

一、WebSocket是什么?

示例:WebSocket是一种双向网络通信协议,与HTTP不同,它以ws://或wss://开头。它是一个有状态协议,这意味着客户端和服务器之间的连接将保持活动状态,直到被客户端或服务器中的任何一方关闭连接之后,连接将从两端终止。

二、为什么需要WebSocket

初次接触 WebSocket的人,都会问同样的问题:我们已经有了HTTP协议,为什么还需要另一个协议?它能带来什么好处?

答案很简单,因为HTTP协议有一个缺陷:通信只能由客户端发起。

举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP协议做不到服务器主动向客户端推送信息。

这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询",每隔一段时候,就发出一个询问,了解服务器有没有新的信息。轮询的效率低,非常浪费资源。因此,工程师们一直在思考,有没有更好的方法,WebSocket就是这样发明的。

WebSocket的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

三、WebSocket Sampler的简单使用

1.安装WebSocket插件和依赖包

方法1:
安装JMeter插件管理器,下载plugins-manager.jar,放入lib/ext目录,重启JMeter
打开JMeter插件管理器后,点击Available Plugins选项页,在搜索框中输入WebSocket,然后选择安装WebSocket Sampler by Maciej Zaleski插件
使用JMeter测试基于WebSocket协议的服务
使用JMeter测试基于WebSocket协议的服务
方法2:复制下载的jar包至jmeter的/lib/ext目录下,并重启jmeter
JMeterWebSocketSamplers-1.2.8.jar
jmeter-websocket-samplers-source

2.添加取样器

WebSocket Sampler组件添加方式:选中“线程组”右键 —> 添加 —> 取样器 —> WebSocket Sampler
根据场景需要添加取样器,可添加的websocket取样器有七种:
1)WebSocket Close —— 关闭ws连接
2)WebSocket Open Connection —— 打开ws连接
3)WebSocket Ping/Pong —— ping/pong心跳机制,检测连接是否还存在
4)WebSocket Sampler
5)WebSocket Single Read Sampler —— 只接收响应(消息推送)
6)WebSocket Single Write Sampler —— 只发送请求
7)WebSocket request-response Sampler —— 发送请求及接收响应

界面如下图所示:
使用JMeter测试基于WebSocket协议的服务

3.WebSocket Sampler 取样器界面详解

使用JMeter测试基于WebSocket协议的服务
针对界面中各选项说明:

名称:WebSocket Sampler组件的自定义名称,见名知意最好。
注释:即添加一些备注信息,对该WebSocket Sampler组件的简短说明,以便后期回顾时查看。
(1)WebServer

Server Name or IP:发送请求的目标服务器的IP地址或者域名。
Port Number:服务器地址后的端口号,有则填写,没有不用填写。
(2)Timeout (milliseconds)

Connection:链接建立的最大超时时间,单位毫秒。如果达到超时时间设置后链接未建立,则sampler失败。

Response :对响应消息的最大等待时间,单位毫秒。到达设定时间后WebSocket链接关闭。

(3)WebSocket Request

Implementation:只支持RFC6455(v13) ,WebSocket协议标准的最新版。
Protocol:有ws与wss之分。ws前缀是WebSocket连接的辨别标识,wss前缀是WebSocket安全连接的辨别标识。根据自己需要访问接口的实际情况填写。
Content encoding:内容编码。有中文推荐编写UTF-8。
Connection Id:连接ID。
Path:访问接口的路径。
Ignore SSL certificate errors:忽略SSL证书错误。
Streaming connection:选择TCP session要不要保持,如果勾上标识连接会一直存在,如果没有勾上,那么第一次响应后该链接就会被关闭。
(4)同请求一起发送参数

可以填写key-value形式的参数。(发送了好像不太好使,请求参数还是填写在下面的Request data中吧)
Request data:填入同请求一起发送参数,与HTTP采样器类似,结合被测接口说明文档来进行配置。
(5)Web Socket Response:接口响应相关设置

Response pattern:采样器将等待含有该标识的消息并继续通信(或者直到timeout,该连接关闭)

Close connection pattern:如果服务器返回的消息含有填写的字符,就结束会话。

Proxy Server (currently not supported by Jetty):编辑代理服务器信息代(当前不支持Jetty)

Server Name or IP:服务器IP地址或域名。

Port Number:端口号。

Username:用户名。

Password:密码。

Message Backlog:定义服务器返回消息保留的最大长度。

4.WebSocket Sampler 接口示例

(1)编辑取样器中信息
使用JMeter测试基于WebSocket协议的服务
(2)添加 —> 监听器 —> 察看结果树
使用JMeter测试基于WebSocket协议的服务
(3)运行查看结果

四、设置取样器顺序方式

设置取样器的先后执行顺序,一般为:
1)使用WebSocket Open Connection,建立ws连接;
2)使用WebSocket Single Write Sampler,请求订阅相关数据;
3)使用WebSocket Single Read Sampler,接收消息推送;
4)使用WebSocket Ping/Pong,确定长连接;
5)使用WebSocket Close,关闭ws连接。
注:WebSocket request-response Sampler 兼具请求与响应功能,可视需求选择。

1.WebSocket Open Connection

设置ws的相关连接信息:
使用JMeter测试基于WebSocket协议的服务

2.WebSocket Single Write Sampler

使用现有连接,发送订阅请求:
使用JMeter测试基于WebSocket协议的服务

3.WebSocket Single Read Sampler

使用现有连接,接收消息推送:
使用JMeter测试基于WebSocket协议的服务

4.WebSocket Ping/Pong

心跳检测:
使用JMeter测试基于WebSocket协议的服务

5.WebSocket Close

关闭ws连接:
使用JMeter测试基于WebSocket协议的服务

6.运行,查看结果树

使用JMeter测试基于WebSocket协议的服务

总结

以上,就我这次我跟大家分享的全部内容了,如果大家觉得不错,请留个赞吧!当然也很期待你的打赏哦
如果大家有什么想法,欢迎跟我联系~文章来源地址https://www.toymoban.com/news/detail-460597.html

到了这里,关于使用JMeter测试基于WebSocket协议的服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter接口测试-websocket测试

    壹 Jmeter接口测试-websocket测试 测试之前的准备工作,需要websocket插件 方式一: 去github下载: https://github.com/maciejzaleski/JMeter-WebSocketSampler/wiki/Dependencies jetty-http-9.1.2.v20140210.jar jetty-io-9.1.2.v20140210.jar jetty-util-9.1.2.v20140210.jar websocket-api-9.1.1.v20140108.jar websocket-client-9.1.1.v20140108.jar websoc

    2024年02月06日
    浏览(56)
  • 【接口测试】JMeter测试WebSocket接口

    目录 一、WebSocket简介 二、JMeter测试WebSocket接口 三、WebSocket和Socket的区别 最近老被问到WebSocket,突然想到以前大学时上Java课的时候,老师教我们socket连接,一个同学电脑做客户端,一个同学电脑做服务端,当双方消息发送成功,第一次感觉到代码的奇妙~ 毕竟抄代码都不利索

    2024年02月08日
    浏览(51)
  • “Jmeter WebSocket协议压测”,助你轻松应对高并发场景!

    目录 引言 背景说明 步骤1:安装插件JMeter WebSocket Samplers 步骤2:采集器使用 步骤3:脚本执行  结语 在当今高并发的网络环境下,WebSocket协议已经成为了最受欢迎的实时通信技术之一。 然而,对于开发人员来说,如何有效地压测WebSocket协议仍是一个挑战。 Jmeter是一款功能强

    2024年02月14日
    浏览(35)
  • JMeter进行websocket测试

    在做websocket性能测试的时候找了几个测试工具都暂时没有对websocket的支持,发现jmeter好像对websockect支持。但是使用jmeter时需要安装插件,下面一起看一下。 jmeter下载安装: 官网下载 https://jmeter.apache.org/download_jmeter.cgi 也可在我的资源中下载 https://download.csdn.net/download/qq_3956

    2024年02月12日
    浏览(42)
  • JMeter websocket接口测试

    前言 在一个网站中,很多数据需要即时更新,比如期货交易类的用户资产。在以前,这种功能的实现一般使用http轮询,即客户端用定时任务每隔一段时间向服务器发送查询请求来获取最新值。这种方式的弊端显而易见: 有可能造成数据更新不及时,如果前端轮询频率为5s,

    2024年02月16日
    浏览(42)
  • Jmeter对websocket进行测试

    JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下载 公司使用websocket比较奇怪,需要带认证信息进行长连接,通过websocket插件是请求失败,如下图,后面通过代码实现随再打包jar包完成websocket测试 本地实现代码如下: 显示如下:  开发代码打包到lib/ext目录,通过Jmeter对本地方法进行测试,

    2024年02月12日
    浏览(31)
  • JMeter进行WebSocket压力测试

    背景 之前两篇内容介绍了一下 WebSocket 和 SocketIO 的基础内容。之后用 Netty-SocketIO 开发了一个简单的服务端,支持服务端主动向客户端发送消息,同时也支持客户端请求,服务端响应方式。本文主要想了解一下服务端的性能怎么样,选择使用 JMeter 对 WebSocket 应用进行性能测试

    2024年02月16日
    浏览(50)
  • jmeter如何测试websocket接口?

    jmeter做接口测试,很多人都是做http协议的接口,就有很多人问websocket的接口怎么测试啊? 首先,我们要明白,websocket接口是什么接口。 然后,我们怎么用jmeter测试? jmeter要测试websocket接口,需要先下载安装一个websocket samplers by peter doornbosch 的插件,插件安装成功后,再次

    2024年02月08日
    浏览(42)
  • Jmeter性能测试 —— jmeter之使用ServerAgent监控服务器

    ServerAgent 性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率,响应时间,服务器的CPU,memory, I/O disk等。Jmeter的聚合报告可以查看并发数、吞吐量、请求成功率、响应时间等;如果要查看服务器端的CPU,memory, I/O disk等就需要安装插件ServerAgent 将ServerAgent-2.2

    2024年02月07日
    浏览(58)
  • 【接口测试】Jmeter接口实战-TCP及Websocket接口,打通接口测试...

    Jmeter测试TCP接口 1、TCP接口结构 TCP接口:只有ip和port 传参数据类型根据开发定义的类型 需要添加一个ascii码的十进制字节结束符,tcp才会关闭 2、TCP接口环境搭建 在testfan-tcp-server.jar目录下,启动cmd命令行,输入:java -jar testfan-tcp-server.jar 3、Jmeter测试tcp接口 1)添加tcp取样器

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包