性能进阶:使用JMeter进行websocket测试【建议收藏】

这篇具有很好参考价值的文章主要介绍了性能进阶:使用JMeter进行websocket测试【建议收藏】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

本次测试案例主要是分享如何使用JMeter进行websocket协议下的聊天接口性能测试。

包含websocket插件的下载安装、线程组及sampler的设置、csv参数化和组建分布式测试的方法、如何通过调整参数来获得发压机的最大并发数以及对测试过程的总结。

整篇文章只侧重介绍进行websocket测试的思路,对具体工具的使用步骤较少着墨,因为网上已有不少相关介绍文章。

希望本篇文章可以对其他正准备用JMeter进行websocket测试的读者提供一些参考。本人水平有限,如有错误恳请批评指正,感谢!

正文

最近收到一个任务,需要对公司的即时通讯服务端进行压测及聊天接口性能测试,这款即时通讯软件的客户端是通过websocket协议与服务端通信的。

但我之前只做过http协议的测试,websocket协议还是第一次。于是我在网上搜索websocket协议的压测工具,一番比较后选中了JMeter。

选择JMeter的原因有以下几点:

1.JMeter是一款免费开源的软件,有成熟的社区及插件管理工具,满足用户的各种需求。

2.JMeter包含windows、mac、linux多平台版本,对发压机支持较好。

3.JMeter支持GUI和CLI两种操作模式,配置分布式压测步骤简单快捷。

网上有很多关于JMeter的安装使用说明,这里我就不再赘述直接进入websocket的相关测试工作。

安装插件

JMeter不自带websocket功能,需要安装插件,这个插件直接安装最新的就行了,我用的是1.2.8版本。

将下载好的jar包放在JMeter目录下的lib/ext里,然后打开JMeter将websocket sampler勾选上再重启JMeter就安装好JMeterWebsocketSampler插件了。

jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

新建线程组和samplerjmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

这里我先把发压机的线程数设置为100,所有线程立即初始化,运行5分钟。

发压机支持的最大线程数跟发压机的配置有关,我的机器配置是6核12线程,能够设置的最大线程数是160,再多就会运行报错。

但是我的机器线程设置超过100后发送速度也不再增加,想知道自己发压机刚好到达最大发送速度时的线程数,可以设置ramp-up period,比如设置60秒,120个线程,就是平均每秒初始化两个线程,到第60秒时刚好全部初始化完毕

我自己测试从50秒往后发送速度就不再增加了,所以就设置为100了。

然后添加websocket connection sampler、websocket send sampler、websocket connection close sampler,分别用于建立连接、发送请求、断开连接操作。

由于是压测案例,所以我用到了Loop Controller,可以用于控制sampler的循环次数,并且客户端只管发送,不接收服务端的响应,因为我依靠另一端实际接收到的消息数判断发送是否成功,这样可以避免等待响应阻塞进程。

我的配置如图所示:jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

 我把infinite勾选上了,表示在5分钟的压测时间内让sampler不限次数地循环,这样可以测出sampler在指定时间内能够完成的最大次数。

CSV参数化

对于JMeter来说,每一个线程就是一个用户,所以设置100个线程就需要100个测试用户的账号、密码及发送数据。

添加CSV DATA Set Config步骤,csv的配置我这里不再赘述,不过需要说明的是测试服务端处理聊天消息的性能,最好是多组一对一聊天这样的设置,比如我的就是50个用户分别给另外50个用户发送消息,这样符合真实使用场景,也能测出服务端的真实性能。

分布式测试

按以上步骤找到每台压测机的最大线程数后,就可以开始分布式测试了。

另找一台机器作为主控机,确保每台压测机与主控机的网络互通。在jemter.properties里的remote_hosts添加压测机的ip和端口,server_port是JMeter启动的端口,压测机用jmeter-server启动。

如果主控机与压测机之间的RMI不是SSL连接,记得将server.rmi.ssl.disable=true的注释解开。server-rmi-localport是用于本机跟其它机器通信的RMI端口,如果要使压测机的压测数据回传主控机,需要将压测机及主控机jemter.properties里的mode=standard注释解开。

保存后主控机使用CLI输入命令jmeter -n -t “Webim Thread Group.jmx” -R x.x.x.x,y.y.y.y -l wbeimlog.jtl -e -o repoort(-R后跟压测机ip,多台用逗号分隔)就可以使用主控机对压测机发送指令了。

压测机接收到指令后会在CLI界面上显示如下信息:

jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

 结合压测机回传的数据可以逐台添加压测机以探测服务端的极限性能。汇总的数据在命令行里指定的report目录里,打开index.html页面可以查看统计数据的饼状图,如下图所示:

jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

根据统计数据可以看到发送的总次数、成功次数、错误情况等信息,对测试案例进行调整。到此使用JMeter进行websocket性能测试就算完成了。

测试过程总结

整个测试的关键点有三处:

一是调整发压机参数使并发数达到最大;

二是设置每对聊天账号都是一对一,不等待服务端响应,以便获得最真实的服务端性能;

三是根据压测机回传的数据分析出压测机所需的数量,进而测试出服务端的最大性能。

我这边整个测试工作都处于测试环境进行,取得的测试数据并不能完成代表真实生产环境下的情况,仅可以用作预测生产环境下的性能表现。今天的分享就到此结束了

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议

资料获取方式 :

jmeter websocket压测,自动化测试,技术分享,软件测试,jmeter,websocket,网络协议文章来源地址https://www.toymoban.com/news/detail-718760.html

到了这里,关于性能进阶:使用JMeter进行websocket测试【建议收藏】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot进阶(49):SpringBoot之集成WebSocket实现前后端通信 | 超级详细,建议收藏

            在上一期,我对WebSocket进行了基础及理论知识普及学习,WebSocket是一种基于TCP协议实现的全双工通信协议,使用它可以实现实时通信,不必担心HTTP协议的短连接问题。Spring Boot作为一款微服务框架,也提供了轻量级的WebSocket集成支持,本文将介绍如何在Spring Boot项

    2024年02月14日
    浏览(28)
  • 使用Jmeter进行http接口性能测试

    在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试, Postman 插件是个不错的 Http 请求模拟工具。   但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功

    2024年02月08日
    浏览(36)
  • 【性能测试】使用JMeter对code论坛进行压力测试

    项目简介 code 论坛是一个技术交流社区。主要功能有发布帖子,查看帖子,评价帖子,删除帖子,点赞帖子,站内信,个人中心,修改个人信息等。是一个基于 Spring 的前后端分离项目。 项目链接 code论坛 使用工具 JMeter5.6.2 性能测试概念 性能测试是通过自动化的测试工具模

    2024年02月08日
    浏览(36)
  • 【性能优化】一、使用JMeter进行压力测试并进行简单调优

    压力测试不同于功能测试,其目的是为了测试出系统在高并发,高数据量的情况下可能会出现的问题(内存泄露、并发、同步) 一种典型的内存泄漏就是对象在创建之后由很多用户进行调用,导致对象被不断新建但复用率很低,导致内存不足(内存泄露的典型问题) 有效的

    2024年02月03日
    浏览(36)
  • JMeter进行websocket测试

    在做websocket性能测试的时候找了几个测试工具都暂时没有对websocket的支持,发现jmeter好像对websockect支持。但是使用jmeter时需要安装插件,下面一起看一下。 jmeter下载安装: 官网下载 https://jmeter.apache.org/download_jmeter.cgi 也可在我的资源中下载 https://download.csdn.net/download/qq_3956

    2024年02月12日
    浏览(29)
  • Spring Boot进阶(25):文件上传的单元测试怎么写?不会我教你 | 超级详细,建议收藏

            文件上传是现代Web应用程序中常见的功能,因此编写高效的文件上传单元测试是确保应用程序质量的关键步骤之一。但是,很多开发者可能会遇到单元测试速度慢或者不准确的问题,这使得测试变得更加繁琐和无聊。因此,本篇文章将为你提供一些实用技巧和最佳实

    2024年02月08日
    浏览(35)
  • Jmeter对websocket进行测试

    JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下载 公司使用websocket比较奇怪,需要带认证信息进行长连接,通过websocket插件是请求失败,如下图,后面通过代码实现随再打包jar包完成websocket测试 本地实现代码如下: 显示如下:  开发代码打包到lib/ext目录,通过Jmeter对本地方法进行测试,

    2024年02月12日
    浏览(23)
  • JMeter进行WebSocket压力测试

    背景 之前两篇内容介绍了一下 WebSocket 和 SocketIO 的基础内容。之后用 Netty-SocketIO 开发了一个简单的服务端,支持服务端主动向客户端发送消息,同时也支持客户端请求,服务端响应方式。本文主要想了解一下服务端的性能怎么样,选择使用 JMeter 对 WebSocket 应用进行性能测试

    2024年02月16日
    浏览(39)
  • 软件测试进阶之jmeter的性能测试和性能指标详解

    jmeter里头是脚本: 测试计划 线程组 http请求:接口请求控件 信息头管理器:请求头(content-type、token) 传参:类型:url传参(接口地址加上信息)、bodydata传参:通常用json格式传参,表单格式from-data get:获取资源、get用url post:传参、bodydata传参 查看结果树:查看响应结果

    2023年04月08日
    浏览(38)
  • Spring Boot进阶(55):SpringBoot之集成MongoDB及实战使用 | 超级详细,建议收藏

            随着大数据时代的到来,数据存储和处理变得越来越重要。而MongoDB作为一种非关系型数据库,具有高效的数据存储和处理能力,被越来越多地应用于各种领域。尤其在Web应用开发中,SpringBoot框架已经成为了主流选择之一。在这篇文章中,我们将探讨如何将MongoD

    2024年02月17日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包