websocket 性能压测

工具: Jmeter, 用到插件jmeter-websocket-samplers

要求:

每个线程建立一个长连接,中间不停的收发消息消息数也是并发考量点。一共两个考量点,连接同时在线数,每个连接接受/发送的消息处理数。

备注:

本次例子中连接不必要求建立连接过程的强并发,只是需要考量在一定数量的连接下,系统消息的处理能力,所以在创建连接的过程可以是阶梯式的创建,等所有连接创建好后再进行消息的发送/接收。

一, 自发自收型:

自收自发型比较简单

1, 线程中中添加 WebSocket Open Connection, 建立长连接

2, 添加循环控制器

3,再循环控制器中添加 WebSocket Request-Response Sampler 选择使用已建立的连接,并设置发送的消息信息以及响应断言

4,循环之外关闭连接

二,甲发乙收型

发给第三方收稍微复杂点。首先要清楚一个概念,发消息的连接和收消息的连接必须同时在线时,这一组消息才会被成功处理,比如甲为消息发送方,发消息给乙, 如果甲发送消息的时候,乙还没有建立连接已经错过甲发送的消息了,等乙再建立连接时也无法再收到甲之前发送过的消息了,只能接收建立连接之后甲发送的消息。

另外如果一个连接在长时间内一条消息都没有发送,只是收消息的话,会被自动关掉, 所以为了能够顺利进行压测,乙在接收消息的同时需要给一段时间发送一条消息以免被迫下线。

1, 首先新建两个线程一个用来放甲方专门发送消息的,一个方乙方专门验证收消息的。为了减小创建连接的压力将甲乙创建连接的时间点错开,且设置20-30秒内完成连接即可,另为了所有连接在线后再开始接收、发送消息,这里再建立连接后添加一个同步定时器。

0

2,添加计数器,和循环控制器. 计数器用来放在消息体中区分不通的消息,好断言判断收到的消息时正确的

3,循环控制器中添加接收、发送消息的sampler,

比较麻烦的点:

连接并发量大的时候,系统支撑不了那么大的并发连接,实际也不存在这种情况需要错开连接,但是又得保证发送方和接收方得连接同时建立后,才开始收发消息,至少发消息要等到连接都建立后,不然会导致消息丢失,整个压测得结果就会收到影响。所以错开延时时间以及Ramp-up得时间需要根据实际情况调整

另,接收消息得超时时间可以设置大点,以防消息延迟,或者再发送得时候刚好错过接收,这里做了2次重试处理,即:第一次断言是否收到消息n时,失败了收到得时消息n-1,那么有两次重试得机会直到成功。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSocket是一种基于TCP协议的全双工通信协议,用于在Web浏览器和服务器之间进行实时数据传输。WebSocket接口压测可以帮助开发人员测试其应用程序在高并发和大数据量情况下的性能表现。 以下是一些常用的WebSocket接口压测工具: 1. Autobahn Test Suite:Autobahn是一个开源的测试套件,用于测试WebSocket客户端和服务器的兼容性和性能。它提供了一个基于Python的测试框架,用于执行各种测试用例并生成详细的测试报告。 2. LoadRunner:LoadRunner是一款商业压测工具,可用于测试Web应用程序的性能和可靠性。它支持WebSocket协议,并提供了一系列强大的功能,例如虚拟用户模拟、负载均衡和分布式压测。 3. JMeter:JMeter是一款免费的开源压测工具,可以用于测试Web应用程序的性能、负载和压力。它支持WebSocket协议,并提供了一系列插件和扩展,用于执行复杂的测试场景和生成详细的测试报告。 4. SockJS:SockJS是一个JavaScript库,用于在Web浏览器和服务器之间实现实时通信。它提供了一个简单的API,用于创建WebSocket连接和发送消息。SockJS还提供了一个测试套件,用于测试其兼容性和性能。 5. WebSocket Bench:WebSocket Bench是一款开源的压测工具,可以用于测试WebSocket服务器的性能和可靠性。它支持多线程、多连接和多协议,并提供了实时监控和统计信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值