Jmeter测试 Websocket服务器

简介: 使用Jmeter来对websocket服务进行测试

一、Jmeter 安装

在此处下载Jmeter二进制文件,解压进入bin目录,点击 jmeter.bat 。OK,就可以看到下面的界面,当然线程组是不存在的(那是我加的)。
fdf65f4462424db4b871a7e9258db88d.png

这里有几点说明:
jmeter.bat:运行JMeter(默认在GUI模式下)
jmeterw.cmd:在没有 Windows shell 控制台的情况下运行 JMeter(默认在 GUI 模式下)
jmeter-n.cmd:在其上放置 JMX 文件以运行 CLI 模式测试
jmeter-n-r.cmd:在其上放置 JMX 文件以远程运行 CLI 模式测试
jmeter-t.cmd:将 JMX 文件拖放到此文件上以在 GUI 模式下加载它
jmeter-server.bat:以服务器模式启动 JMeter
mirror-server.cmd:以 CLI 模式运行 JMeter 镜像服务器
shutdown.cmd:运行 Shutdown 客户端以正常停止 CLI 模式实例
stoptest.cmd:运行 Shutdown 客户端以突然停止 CLI 模式实例

特殊名称LAST可以与jmeter-n.cmd、jmeter-t.cmd和jmeter-nr.cmd一起使用 ,表示交互式运行的最后一个测试计划。

1.1 自定义 JMeter 的 JVM 设置

在bin目录中创建一个名为setenv.bat,添加下面的代码:

set JVM_ARGS=-Xms1024m -Xmx1024m -Dpropname=value

JVM_ARGS可用于覆盖jmeter.bat脚本中的 JVM 设置,并将在启动 JMeter 时设置,例如 :

jmeter -t test.jmx …

更多的操作可以参照Jmeter用户手册

二、WebSocket插件安装

Jmeter的 WebSocket插件有很多种,这里我们使用JMeter WebSocket Samplers,可以在这里下载

下载最新的就可以,下载后将JAR包拖到 Jmeter安装目录/lib/ext下即可。
a900f432f15b4d9a913c98704109998f.png

之后重启Jmeter,可以看到下图所示即为安装成功:
40f4796a708148f4ad992918dc30f660.png

三、环境准备

我这里是在Win 11上进行的测试,但不管是在那台机器上,都必须修改服务器的最大连接限制。否则,超过服务器限制的连接数就会报错。

3.1 连接数限制修改

  • 首先进入注册表:WIN+R进入运行框,输入:regedit 。
    beed3e86139447178bf5f1bffa56cb39.png
  • 修改注册表:
    进入 [HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
    
    就是这里:
    d81634f29d2c4200b29ac066007c825b.png

然后添加下面的设置:

最大允许的TCP连接数:TcpNumConnections = 16777214
最大动态端口数 :MaxUserPort = 65534
最大TCB 数量 :MaxFreeTcbs = 16000
最大TCB Hash table 数量 :MaxHashTableSize = 65536

具体操作可以参考:新建 -> QWORD(64位)值(Q)->10进制
835723efd0d54302bdd838cc9b7df89c.png

四、测试

4.1 脚本构建

我的英文不好,所以我选择中文界面,可以这样设置:
e3658cec3c234c1382048bac7a87c626.png

设置完中文看着顺眼多了😁

4.1.1 连接请求

  1. 将线程组添加到测试计划中。
  2. 测试计划 -> 添加 -> 线程(用户) -> 线程组
  3. 将WebSocket Open Connection 采样器添加到线程组
  4. 检查采样器的所有字段并填写以下值:
    • 协议:ws或者wss
    • 服务器名称或 IP:服务器所在的IP
    • 端口:服务对应的端口
    • 路径:对应的路径 可以为空
    • 连接超时(毫秒):20000
    • 读取超时(毫秒):6000
      31797d76bace40dfb17ed745d29e9b80.png

4.1.2 心跳

  1. 线程组 -> 添加 -> 取样器 -> WebSocket Ping/Pong
  2. 采样器指定以下参数:

    • Pong(读取)超时(毫秒):6000

      741f86c81aea460f8c56c52f138d919e.png

4.1.3 WebSocket request-response Sampler

  1. 线程组 -> 添加 -> 取样器 -> WebSocket request-response Sampler
  2. 填写以下值:

    • 连接:use existing connection
    • 数据类型:Text
    • 请求数据:blazemeter
    • 响应(读取)超时(毫秒):6000
      8b504f0f8d2a475580d9c82582872be5.png
  3. 将 WebSocket 请求-响应采样器添加到线程组。下一个采样器将把二进制数据发送到 Echo 服务。

  4. 线程组 -> 添加 -> 取样器 -> WebSocket request-response Sampler
  5. 设置以下字段:
    • 连接:use existing connection
    • 数据类型:Binary
    • 请求数据:0x62 0x6c 0x61 0x7a 0x65 0x6d 0x65 0x74 0x65 0x72
    • 响应(读取)超时(毫秒):6000
      9bb602dc80624966a85554590ff36f08.png

4.1.4 WebSocket Single Write Sampler

  1. 线程组 -> 添加 -> 取样器 -> WebSocket Single Write Sampler
  2. 填写以下值:
    • 连接:use existing connection
    • 数据类型:Text
    • 请求数据:blazemeter-text
      fe522282a7a5403fa788e274ec13fab2.png
  1. 和前面一样,再添加一个发送二进制消息的
  2. 线程组 -> 添加 -> 取样器 ->WebSocket Single Write Sampler
  3. 填写以下值:
    • 连接:use existing connection
    • 数据类型:Binary
    • 请求数据:0x62 0x6c 0x61 0x7a 0x65 0x6d 0x65 0x74 0x65 0x72 0x2d 0x74 0x65 0x78 0x74
      e9d9d43e2bcd4d789b5b5325a32910ad.png

4.1.5 WebSocket Single Read Sampler

  1. 线程组 -> 添加 -> 取样器 -> WebSocket Single Read Sampler
  2. 设置以下字段:
    • 连接:use existing connection
    • 数据类型:Text
    • 响应(读取)超时:6000
      1c3c43581c80443a8e5f7ff8c327990f.png
    1. 线程组 -> 添加 -> 取样器 -> WebSocket Single Read Sampler
    2. 设置以下字段:
    • 连接:use existing connection
    • 数据类型:Binary
    • 响应(读取)超时:6000
      9b675367264a40fcad24c9e9790a69c1.png

4.1.6 WebSocket Close

  1. 线程组 -> 添加 -> 取样器 -> WebSocket Close
  2. 填写以下值:
    • 关闭状态:1000
    • 响应(读取)超时:6000
      a3190ab4a64f4ee29f722af6c72fd6bf.png

4.2 结果查看

  1. 线程组 -> 添加 -> 监听器 -> View Results Tree

五、结果查询

  1. 运行脚本
  2. 查看结果
目录
相关文章
|
3月前
|
网络协议 安全 测试技术
手撕测试tcp服务器效率工具——以epoll和io_uring对比为例
手撕测试tcp服务器效率工具——以epoll和io_uring对比为例
45 2
|
3月前
|
存储 弹性计算 运维
阿里云服务器ECS经济型e实例详细介绍_性能测试和租用价格
阿里云服务器ECS经济型e实例详细介绍_性能测试和租用价格,阿里云服务器ECS推出经济型e系列,经济型e实例是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU采用Intel Xeon Platinum架构处理器,支持1:1、1:2、1:4多种处理器内存配比,e系列性价比优选
|
8天前
|
JSON JavaScript 前端开发
服务器通信:使用WebSocket与后端实时交互
【4月更文挑战第24天】WebSocket为解决服务器与客户端实时双向通信问题而生,常用于聊天、游戏和实时通知等场景。本文通过4步教你实现WebSocket通信:1) 客户端使用JavaScript创建WebSocket连接;2) 监听`open`、`message`和`close`事件;3) 使用`send`方法发送数据;4) 使用`close`方法关闭连接。服务器端则需处理连接和数据发送,具体实现依后端技术而定。WebSocket为现代Web应用的实时交互提供了强大支持。
|
2月前
|
弹性计算 分布式计算 DataWorks
DataWorks报错问题之ecs自建数据库连通性测试报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
2月前
|
弹性计算 缓存 测试技术
阿里云2核4g服务器(费用价格/性能测试/支持人数)
阿里云2核4g服务器能支持多少人访问?2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素
|
2月前
|
弹性计算 缓存 测试技术
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试,2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素
|
3月前
|
存储 负载均衡 监控
epoll服务器百万并发测试
epoll服务器百万并发测试
31 1
|
3月前
|
弹性计算 数据中心
阿里云香港服务器详细介绍_BGP多线精品测试_CN2高速网络
阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品,中国电信CN2高速网络高质量、大规格BGP带宽,运营商精品公网直连中国内地,时延更低,优化海外回中国内地流量的公网线路,可以提高国际业务访问质量。阿里云百科来详细介绍阿里云香港云服务器
|
网络协议 前端开发 安全
websocket和http的瓜葛以及websocket协议实现
websocket和http的瓜葛以及websocket协议实现
websocket和http的瓜葛以及websocket协议实现
|
JavaScript
js实现websocket实例
js实现websocket实例
195 0