利用Jmeter对WebSocket进行压力测试

什么是WebSocket

是一种协议(具体查看参考文档,或者官方文档),在http中服务器只能在接收到请求后,才能给客户端返回response,在一些服务端需要主动发送数据的需求时,http的实现效果不是很好。而WebSocket能很好的解决这个问题,在建立连接后,服务端和客户端可以随意的来回发送数据,整个通信类似打电话:建立连接(拨通)->通信->关闭连接(挂断)。

如何识别性能测试的业务有WebSocket

  1. chrome浏览器打开调试工具, 查看网络请求触发源
    在这里插入图片描述
  2. 用抓包工具,如Charles
    在这里插入图片描述

JMeter中安装WebSocket插件

  1. 下载JMeter
  2. 下载jar包 (jetty-http, jetty-io, jetty-util, websocket-api, websocket-client, websocket-common)
  3. 将jar包放到jmeter的lib/ext目录下,重启Jmeter,就可以看到WebSocket的sampler
    在这里插入图片描述

Websocket几种sampler的使用

Websocket性能测试需要注意的点

  1. Websocket跟http请求的关系很小,几乎没有关系,所以在性能测试中,可以根据实际忽略业务场景中一些http请求
  2. 根据bodoudou业务场景的设计,我推测ws中很少会进行数据校验,所以可使用重复数据,不用考虑生成批量数据(数据校验会在http请求中)
  3. 有些Websocket Single Write和Websocket Single Read一一对应的使用,类似于一问一答的场景(类似http的request-response)可以使用WebSocket request-response Sampler。
  4. Websocket Single Read Sampler和WebSocket request-response Sampler中的Read timeout超时时间要注意根据实际场景来设置,如果太短的话,就获取不到数据了
  5. 发送的data支持文本(JSON)和Binary二进制数据(没了解过),可以抓包获取格式,直接复制

建立连接

WebSocket Open Connection

如果仅建立连接,不发送数据,不需要返回数据,用WebSocket Open Connection。ES剥豆豆场景中,建立连接的时候并不会发送data,用的是WebSocket Open Connection。
在这里插入图片描述

WebSocket request-response Sampler

如果建立连接时,还需要发送或用到返回数据,则用 WebSocket request-response Sampler。
在这里插入图片描述

Ping/Pong

在这里插入图片描述
根据需求使用,心跳机制,检查连接是否还存在。请求头带编码,告诉WebSocket服务,这是心跳,所以不用填写任何东西,可以直接使用。

参考文档: Websocket协议

上一篇 利用Jmeter进行分布式的性能测试
下一篇 利用ReportNG生成自动化测试报告

EduSoho官网 https://www.edusoho.com/
EduSoho开源地址 https://github.com/edusoho/edusoho
我们正在寻找开发者

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: JMeter可以用来进行WebSocket压力测试WebSocket是一种基于TCP的协议,用于实现双向通信。在JMeter中,可以使用WebSocket Sampler来模拟WebSocket的请求和响应。 要进行WebSocket压力测试,需要先安装WebSocket插件。安装完成后,可以在JMeter中创建一个WebSocket Sampler,并设置WebSocket的URL和协议。然后,可以设置请求和响应的数据,以及其他相关参数,如超时时间和连接池大小等。 在运行测试之前,需要先启动WebSocket服务器,并确保服务器可以正常工作。然后,可以在JMeter中启动测试,并监视测试结果。测试结果包括响应时间、吞吐量和错误率等指标,可以用来评估WebSocket服务器的性能和稳定性。 总之,JMeter是一种非常强大的工具,可以用来进行各种类型的压力测试,包括WebSocket压力测试。通过使用JMeter,可以快速、准确地评估WebSocket服务器的性能和稳定性,从而优化服务器的性能和提高用户体验。 ### 回答2: WebSocket是一种基于TCP协议的网络通信协议,它可以在单个TCP连接上进行全双工通信,支持实时化应用,成为Web应用中的重要组成部分。而JMeter是一款由Apache软件基金会开发的开源工具,可以用于对Web应用进行压力测试和性能测试。在JMeter中,我们可以使用WebSocket Sampler和WebSocket Test Plan对WebSocket应用进行测试。 使用JMeter进行WebSocket压力测试,需要先安装JMeter插件WebSocket Sampler和WebSocket Test Plan。安装好后,可以在JMeter的左侧面板选择WebSocket Sampler作为压力测试脚本的一部分,设置WebSocket的地址和端口等相关参数。在WebSocket Test Plan中,可以设置多个WebSocket Sampler对应于不同的测试场景,例如模拟多个客户端连接、模拟大量数据传输等,从而有效模拟实际应用场景,对WebSocket应用进行全面的测试。 需要注意的是,在进行WebSocket压力测试时需要考虑WebSocket的特点,包括全双工的特性、数据量较大等,因此可能需要进行特殊的优化和参数调整。另外,在测试过程中需要关注测试结果和应用性能指标,例如带宽、延迟、吞吐量等,从而发现测试过程中可能出现的问题和瓶颈,并对应进行改进和优化。 总之,使用JMeter进行WebSocket压力测试,是进行Web应用性能测试和负载测试的不二选择,可以有效模拟大量用户连接的情况,对WebSocket应用进行全面的性能测试和评估,从而提高应用的稳定性和可靠性。 ### 回答3: JMeter是一个基于Java开发的性能测试工具,可以用于压力测试、功能测试和全面的性能测试。而在现如今的互联网应用中,Websocket是一种实时通信协议。那么,如何使用JMeter进行Websocket压力测试呢?下面我们来了解一下。 1、下载JMeter 首先,需要在官网下载最新的JMeter版本,并安装到本地电脑。 2、安装WebSocket插件 安装Steps WebSocket Plugin插件可参考官方文档中的教程,具体步骤是: 步骤1:从Github上下载the WebSocket plugin JAR文件。 步骤2:将JAR文件放入JMeter的libs文件夹。 步骤3:重启JMeter,完成插件安装。 3、创建WebSocket压测计划 3.1、添加线程组 首先,在JMeter工具中创建一个新的测试计划,并在测试计划中添加一个线程组,用于配置用户模拟。 3.2、添加WebSocket连接请求 在Threads组下右键,选择Add->Sampler->Steps WebSocket request,配置请求参数: - WebSocket请求URL:需要测试的WebSocket地址。 - 连接响应等待时间:连接Websocket需要等待响应的时间。 - 超时时限:等待读取响应数据的最大时间。 3.3、添加WebSocket收发消息请求 接着,我们需要添加步骤WebSocketMessageSampler,以模拟向WebSocket服务器发送消息,并且获取服务器返回的消息。配置参数: - 消息内容:发送给服务器的消息内容。 - 操作标记:请求、响应或两者。 - 操作类型:消息类型(Text或Binary)。 3.4、监听WebSocket响应 除了模拟WebSocket连接和发送消息操作,我们还需要添加WebSocket Listener,以监听WebSocket服务器返回的响应信息。 4、执行WebSocket压力测试JMeter中的测试计划,在线程组中配置线程数,并设置持续时间。执行WebSocket压力测试,通过查看图表来分析测试结果。 总体来说,JMeter是一款非常优秀的性能测试工具,可用于WebSocket压力测试。对于需要测试Websocket的应用程序来说,建议通过JMeter进行Websocket压力测试,以充分测试应用程序对Websocket的支持及性能表现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值