使用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

课程从基础讲起,全课程以实战为主,每个知识点通过实际案例演练讲解理论+实践结合,更容易理解,适合小白,低门槛,快速上手。 课程同时涵盖web端和移动端app测试,同时还加入了抓包工具的使用; 1) 第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,通过Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程中间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器、后置处理器之正则表达式提取器提取响应内容实践、读取本地JSON格式文件实例、正则表达式操作符、正则表达式工具之Regextester,系统全面学习正则表达式,突破JMETER 知识难点,响应断言、JMETER分布式、分布式原理、搭建JMETER 分布式、WebService协议接口测试。 每一个知识点采用理论加案例的方式,吃透每一个知识点,为性能测试实践奠定基础。 2) 第二阶段为性能测试实践篇1、通过JMETER 实践爬虫技术,爬取第三方平台全网页地址、批量爬取国外网站壁纸10W+图片并保存到本地;2、详细介绍Fiddler 抓包工具,Fiddler 抓包工具原理、Fiddler 抓取PC 端和移动端包信息、JMETER+Fiddler 结合使用对PC 端项目进行性能测试项目实践,提升PC 端性能测试能力;3、JMETER+Fiddler  结合使用对app 项目进行性能测试项目实践,提升app项目性能测试能力4、性能测试常见的业务指标和技术指标、响应时间、TPS、HPS等知识进行讲解5、通过JMETER 对移动端项目进行性能测试实战; 
### 回答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、付费专栏及课程。

余额充值