Jmeter测试 Websocket服务器

news2025/1/11 23:59:10

目录

  • 一、Jmeter 安装
    • 1.1 自定义 JMeter 的 JVM 设置
  • 二、WebSocket插件安装
  • 三、环境准备
    • 3.1 连接数限制修改
  • 四、测试
    • 4.1 脚本构建
      • 4.1.1 连接请求
      • 4.1.2 心跳
      • 4.1.3 WebSocket request-response Sampler
      • 4.1.4 WebSocket Single Write Sampler
      • 4.1.5 WebSocket Single Read Sampler
      • 4.1.6 WebSocket Close
      • 4.2 结果查看
  • 五、结果查询

一、Jmeter 安装

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

这里有几点说明:
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下即可。

之后重启Jmeter,可以看到下图所示即为安装成功:
在这里插入图片描述

三、环境准备

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

3.1 连接数限制修改

  • 首先进入注册表:WIN+R进入运行框,输入:regedit 。

在这里插入图片描述

  • 修改注册表:
 进入 [HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]

就是这里:

在这里插入图片描述

然后添加下面的设置:

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

具体操作可以参考:新建 -> QWORD(64位)值(Q)->10进制
在这里插入图片描述

四、测试

4.1 脚本构建

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

在这里插入图片描述
设置完中文看着顺眼多了😁

4.1.1 连接请求

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

4.1.2 心跳

  1. 线程组 -> 添加 -> 取样器 -> WebSocket Ping/Pong
  2. 采样器指定以下参数:
    • Pong(读取)超时(毫秒):6000
      在这里插入图片描述

4.1.3 WebSocket request-response Sampler

  1. 线程组 -> 添加 -> 取样器 -> WebSocket request-response Sampler
  2. 填写以下值:
    • 连接:use existing connection
    • 数据类型:Text
    • 请求数据:blazemeter
    • 响应(读取)超时(毫秒):6000
      在这里插入图片描述
  3. 将 WebSocket 请求-响应采样器添加到线程组。下一个采样器将把二进制数据发送到 Echo 服务。
  4. 线程组 -> 添加 -> 取样器 -> WebSocket request-response Sampler
  5. 设置以下字段:
    • 连接:use existing connection
    • 数据类型:Binary
    • 请求数据:0x62 0x6c 0x61 0x7a 0x65 0x6d 0x65 0x74 0x65 0x72
    • 响应(读取)超时(毫秒):6000
      在这里插入图片描述

4.1.4 WebSocket Single Write Sampler

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

4.1.5 WebSocket Single Read Sampler

  1. 线程组 -> 添加 -> 取样器 -> WebSocket Single Read Sampler
  2. 设置以下字段:
    • 连接:use existing connection
    • 数据类型:Text
    • 响应(读取)超时:6000
      在这里插入图片描述
  3. 线程组 -> 添加 -> 取样器 -> WebSocket Single Read Sampler
  4. 设置以下字段:
    • 连接:use existing connection
    • 数据类型:Binary
    • 响应(读取)超时:6000
      在这里插入图片描述

4.1.6 WebSocket Close

  1. 线程组 -> 添加 -> 取样器 -> WebSocket Close
  2. 填写以下值:
    • 关闭状态:1000
    • 响应(读取)超时:6000
      在这里插入图片描述

4.2 结果查看

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

五、结果查询

  1. 运行脚本
  2. 查看结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac配置CMake

目录 写在前面命令行安装安装包安装准备配置 参考完 写在前面 1、本文内容 Mac上配置CMake 2、平台 Mac 3、转载请注明出处: https://blog.csdn.net/qq_41102371/article/details/131807995 命令行安装 通过brew安装,先安装brew https://blog.csdn.n…

Sourcetree 同时推送两个仓库

Sourcetree 同时推送两个仓库 添加远端仓库添加完成推送推送完成git 命令版 添加远端仓库 注意名称不能相同 ,自己取个名子区分一下,别把自己搞懵就行了。 添加完成 推送 选择仓库。选择目标分支。并勾选跟踪。推送。 推送完成 推送完成后,…

应用案例|探索高精度3D机器视觉在车间滑橇检测与测量中的应用

Part.1 应用行业 随着科技的不断进步,3D机器视觉技术逐渐成为了现实世界与数字世界之间的桥梁。3D机器视觉技术能使计算机感知和理解三维空间重的物体和场景,被广泛应用于机器人引导、工业检测等行业,例如:物流、电商、教育、医疗…

开发 SpringBoot 项目所用版本的选择

一、为什么要关注 springboot 的版本? 最开始做项目时候,组长说创建一个 springboot 2.5.4 的项目,mysql使用 5.6.X ,maven使用是3.6.X。其实最开始我也没有多想,直接照做了,但是后面回想自己平时看到的SpringBoot开源…

【Win10系统下载Python3】

Python3官网:https://www.python.org/downloads/windows/ 注

谷歌Bard:ChatGPT之外的第三选择

2023年年初,为了对应ChatGPT方面的压力,谷歌Bard仓促上线,此后便进入了低调前行。目前为止已经迭代了9个版本,也就是在近期的版本更新中支持了中文(简体/繁体)语言,对国内用户可以说又友好了一步…

pytest入门介绍

目录 1、pytest是一个非常成熟的全功能的Python测试框架。 2、pytest安装 3、要求 4、运行 5、生成html报告 6、常见问题 1、pytest是一个非常成熟的全功能的Python测试框架。 主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的…

孩子没有身份证如何坐火车

既然写这个话题就有必要搞清楚,儿童多大是免票的。(儿童票怎么买,我们在买票的时候点击选择乘车人,左侧是添加乘车人右侧是添加随行儿童) 如果你有12306app 点击app -> 点击我的 -> 点击使用须知 -> 点击常见问题 上面的有效证件…

配置需求分类中的科目分配

其中科目分配的内容都为灰色无法修改 结果是在科目分配里面单独维护的: 路径:销售分销-基本功能-科目分配/成本-维护成本科目分配的需求类别

three.js学习(基础)

目录 前言: 参考文档: 实现 1、安装 2、声明 3、引入使用 前言: 前面学习了three.js物体的动画展示,接下来学习应用图形界面更改变量 目标、页面提供操作区域进行变量修改 参考文档: dat.gui - npmA lightwe…

韦东山Linux驱动入门实验班(4)LED驱动

前言 (1)我们学习完hello驱动之后,对驱动程序开发有了一点点认识了之后。现在可以开始对硬件进行实际操作了,本人使用的是i.max6ull开发板,STM32MP157和全志的D1H也会进行讲解。 (2)如果还有对于…

ubuntu 设置系统时间矫正

1、安装ntpdate,同步标准时间 2、修改时区 3、在.profile文件中写入上面提示的信息,保存退出、更新配置文件或者重启生效 3.1、或者配合上面的cp那条命令,用下面的命令保存到底层 $ hwclock --systohc 4、重启之后,查看日期时间已…

【动手学深度学习】--14.网络中的网络 NiN

文章目录 网络中的网络 NiN1.NiN块1.2NiN架构1.3NiN模型1.4训练模型 网络中的网络 NiN 学习视频:网络中的网络 NiN【动手学深度学习v2】 官方笔记:网络中的网络(NiN) 全连接层的问题 LeNet、AlexNet和VGG都有一个共同的设计模式…

如果微信消息显示“已读”的话......

近日,一则 #如果微信显示已读的话# 话题冲上了微博热搜榜单。 “已读”是很多社交软件拥有的功能,如果对方接收并查看了消息,就会在消息上显示“已读”,但目前微信还没有推出这项功能。 对于“已读”功能,不少网友纷纷…

推荐一款在win、mac、android之间传递文件或消息的软件,LocalSend,前提需要在同一网络下

官方地址 https://github.com/localsend/localsend/releases/download/v1.10.0/LocalSend-1.10.0.dmg 可选择不同的设备进行发送接收,超级好用

我又被文章版权碰瓷公司起诉了:索赔10000元

我是卢松松,点点上面的头像,欢迎关注我哦! 事情是这样的,昨天我正在上班摸鱼,突然收到一个从新疆乌鲁木齐打来的电话。我本不想接,以为又是广告骚扰电话,结果突然弹出一条短信,说是…

Ceph 分布式存储之应用

一、创建 CephFS 文件系统 MDS 接口 1、服务端操作 1)在管理节点创建 mds 服务 [rootadmin ceph]# cd /etc/ceph [rootadmin ceph]# ceph-deploy mds create node01 node02 node03 [ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.c…

Vue3栅格(Grid)

24 栅格系统 概述 布局的栅格化系统,我们是基于行(Row)和列(Col)两个组件相互配合来定义信息区块的外部框架,以保证页面的每个区域能够稳健地排布起来。 下面简单介绍一下它的工作原理: 通过Ro…

java贪心算法案例

1.零钱找回问题 这个问题在我们的日常生活中就更加普遍了。假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。现在要用这些钱来支付K元,至少要用多少张纸币?用贪心算法的思想,很显然,每一步…

2023年,从0彻底打通自动化测试进阶高级岗,卷起来...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、自动化测试的分…