websocket 压测工具 有哪些_Jmeter之WebSocket心跳保持使用

之前,写了一篇关于WebSocket的文章,主要解决的问题是,连接聊天室成功后,学生并未成功登录到指定的频道。就像你打开了电视机,但是没有办法换到CCTV5频道去看某场体育直播。

hqbluesky:Jmeter之WebSocket使用​zhuanlan.zhihu.com

后面,我在做全链路压测的时候,从用户登录-获取学分-获取聊天室凭证-登录聊天室-发送弹幕和礼物-退出登录。在并发10-20个用户的时候,所有的接口都是可以100%的成功;但是,当并发用户达到100的时候,就只能有50%的成功率,我连续尝试了3次,每次的结果都是一样。这时候,我就开始纳闷了,这到底是为什么?我还差了哪些步骤?

我的第一反应是,是否是缺少连接的保持,导致最后发送礼物的时候失败了?我看到浏览器中,websocket心跳保持结果是这样的:

5f4a0a6a580a37694fb88a5bfb2f3424.png

当你没有发送消息的时候,客户端会先发送[2]个服务端,服务端收到请求后,返回[3]给客户端,这样,整个连接就保持了;当在约定的时间内,例如:3分钟没有任何的消息发送,整个websocket连接就断开了

那么,你就需要新建一个websocket request-response sampler,格式如下:

0030a1966eeb8c5658d6a01b227ef233.png

接着,根据文档的约定,心跳的连接是每一秒发送一次,那么就用到了jmeter另外一个控件,[Constant Timer],格式如下:

59f385dbbd72e87614a12900f7eb5d04.png

最后,你要保持整个心跳机制,不能让这个机制在压测结束前就停止了,那么就再用到jmeter的另外一个控件,[Loop Controller],假设,你是要测试200个并发用户,那么,这里就要设置成200,保证所有的用户登录到指定聊天室,格式如下:

7a4b3f21eb4a4c73b0dbfadb8bea4553.png

在Test Plan这边看到的结构就是:

a95fb42f469b3019cda7c6ef966e8ee9.png

我们的接口sendRewardMsg先调用,然后通过心跳保持,会调用3rd party的发送礼物接口,完成整个压测链路的测试。

当心跳保持功能添加完成后,100个并发用户运行,所有接口调用都实现了100%的成功,问题再次完美解决。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值