使用jmeter对websocket进行压力测试

近期接到一个测试任务,需要对websocket协议进行性能测试,由于之前从未接触过该协议,一番google之后发现有两种比较简单的测试工具可以支持该协议:

  1. jmeter通过增加插件可以做到对该协议支持
  2. 开源工具tcpkali可以对该协议支持,tcpkali见github:https://github.com/machinezone/tcpkali
由于目前暂时对于使用tcpkali对websocket还未测试通过,所以先针对jmeter来进行分享.

关于WebSocket协议,简单讲:WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

详细参考维基百科:https://zh.wikipedia.org/wiki/WebSocket


一: 安装依赖:

本次测试操作系统为Ubuntu 14.04,jmeter Version 2.13

jmeter支持websocket测试需要下载一个插件叫做JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar

单纯使用这一个插件会导致jmeter报错,错误如下:

ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.NoClassDefFoundError: org/eclipse/jetty/util/ssl/SslContextFactory

当出现该错误时,主要是因为JMeterWebSocketSampler插件需要安装其他6个依赖包,如下:

jetty-http-9.1.2.v20140210.jar,jetty-util-9.1.2.v20140210.jar,jetty-io-9.1.2.v20140210.jar,websocket-common-9.1.1.v20140108.jar,websocket-client-9.1.1.v20140108.jar,websocket-api-9.1.1.v20140108.jar

以上所有包可以google获得,也可以到我百度云共享中获取:http://pan.baidu.com/s/1dD4NjUD

所有插件包需要放到apache-jmeter-2.13/lib/ext/下,启动jmeter.


二 jmeter新增websocket协议

1.新建线程组

2.选择创建一个WebSocket sample

3.增加一个结果数查看结果



简单的一个jmeter对websocket性能测试就这么简单搞定了.

websocket下载地址见:http://mvnrepository.com/
jetty依赖下载地址见:http://grepcode.com/search/st

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答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的支持及性能表现。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值