美文网首页
遇到Websocket就不会测了?别慌,学会这个Jmeter插件

遇到Websocket就不会测了?别慌,学会这个Jmeter插件

作者: 软件测试小白 | 来源:发表于2022-01-23 19:32 被阅读0次

01websocket简介及优势

1.websocket简介:

websocket 是一种双向通信协议,在建立连接后,websocket服务端和客户端都能主动向对方发送或者接收数据,而在http协议中,一个request只能有一个response,而且这个response也是被动的,不能主动发起。

2.websocket优势:

当服务器完成协议升级后(HTTP->Websocket),服务端就可以主动推送信息给客户端啦。

就变成了这样,只需要经过一次HTTP请求,就可以做到源源不断的信息传送了。(在程序设计中,这种设计叫做回调,即:你有信息了再来通知我,而不是我傻乎乎的每次跑来问你)

这样的协议解决了上面同步有延迟,而且还非常消耗资源的这种情况。

02WebSocket插件安装及使用

1、安装ws插件,并重启jmeter

2、WebSocket的使用

重启jmeter 后,添加线程组,右键添加取样器,会出现WebSocket 相关插件

(1)不勾选streaming

(2)勾上streaming connection

(3)设置一个测试(添加一个loop controller,设置循环次数为3)

循环中的sampler都勾选了streaming,最后一个sampler没有勾选此选项,结果中可以看出:在loop controller中的sampler使用的是一个连接,在loop外面的这个sampler会打开一个新的连接,可以得出一个结论,实际上,当勾选了streaming connection时,不仅会在结束会话后保留连接,而且勾选了的sampler会在有可用连接是直接使用,而没有勾选的sampler即使存在可用连接也会重新打开一个新的连接。因此,如果是要在一个会话中发送多条消息,请勾选这个streamingconnection

(4)输入request data 查看结果

03常规选项解释

1、WebServer

Server Name or IP:WebSocket发送的目标服务器的地址或者名称

Port Number:WebSocker服务器监听的端口号。(一般是HTTP 80端口,可以通过WireShark数据包得到)

2、Timeout

Connection – 发送一个连接请求后,Jmeter等待连接完成的最长时间,单位是毫秒。

Response - 对响应消息的最大等待时间。

3、WebSocket Request

Implementation – 只支持RFC6455(v13) ,WebSocket协议标准的最新版。

Protocol – 有ws与wss之分, ws前缀是WebSocket连接的辨别标识,wss前缀是WebSocket安全连接的辨别标识。根据自己的实际情况填写

Streaming Connection – 选择这个TCP session要不要保持,如果勾上标识连接会一直存在,如果没有勾上,那么得到第一次响应后该链接就会被关闭。

Request data:填入将要发送的请求,要跟开发沟通好,这个是什么格式的消息。

4.WebSocket Response

Response Pattern – 采样器将等待含有该标识的消息并继续通信(或者直到timeout,该连接关闭)

Close Connection Pattern – 如果服务器返回的消息含有这样的字符,就结束会话。

Message Backlog – 定义服务器返回消息保留的最大长度。

04WebSocket解决服务器上消耗资源的原理

其实我们所用的程序是要经过两层代理的,即HTTP协议在Nginx等服务器的解析下,然后再传送给相应的Handler(PHP等)来处理。

简单地说:我们有一个非常快速的接线员(Nginx),他负责把问题转交给相应的客服(Handler)。

本身接线员基本上速度是足够的,但是每次都卡在客服(Handler)了,老有客服处理速度太慢,导致客服不够。

Websocket就解决了这样一个难题,建立后,可以直接跟接线员建立持久连接,有信息的时候客服想办法通知接线员,然后接线员在统一转交给客户。这样就可以解决客服处理速度过慢的问题了。

同时,在传统的方式上,要不断的建立,关闭HTTP协议,由于HTTP是非状态性的,每次都要重新传输identity info(鉴别信息),来告诉服务端你是谁。虽然接线员很快速,但是每次都要听这么一堆,效率也会有所下降的,同时还得不断把这些信息转交给客服,不但浪费客服的处理时间,而且还会在网路传输中消耗过多的流量/时间。

Websocket只需要一次HTTP握手,所以说整个通讯过程是建立在一次连接/状态中,也就避免了HTTP的非状态性,服务端会一直知道你的信息,直到你关闭请求,这样就解决了接线员要反复解析HTTP协议,还要查看identity info的信息。

同时由客户主动询问,转换为服务器(推送)有信息的时候就发送(当然客户端还是等主动发送信息过来的…),没有信息的时候就交给接线员(Nginx),不需要占用本身速度就慢的客服(Handler)了。

05chrome查看WebSocket

相关文章

  • 遇到Websocket就不会测了?别慌,学会这个Jmeter插件

    01websocket简介及优势 1.websocket简介: websocket 是一种双向通信协议,在建立连接...

  • jmeter_websocket 接口请求配置

    1.为jmeter安装websocket插件 先安装plugin manager 网上搜索和下载安装包jmeter...

  • Jmeter 压测 WebSocket

      上一篇[Jmeter压测http]介绍了如何使用Jmeter压测常规的web服务接口。本文将继续演示如何使用J...

  • Jmeter 压测 WebSocket

      有过Socket相关开发经验的人应该都不会陌生,ws协议就是WebSocket协议,而wss对应就是在SSL上...

  • Jmeter压测之jtl文件解析

    一、背景 最近在做性能压测方面的工作,用的压测工具是Jmeter。Jmeter中有一个插件叫jp@gc Throu...

  • JMeter 、Loadrunner比较

    JMeter 开源 且持续维护 ,支持二次开发,丰富的插件协议支持(websocket、dubbo等),通过jen...

  • 批量重启Jmeter服务

    笔者在搭建Jmeter压测机群,遇到要重启多个jmeter-server,一个个远程去重启Jmeter-Serve...

  • jmeter压测websocket相关知识

    业务场景:我们有一个微直播服务,类似于聊天室。需要模拟主播切图(学员会收到消息)、学员和游客发送消息,然后统计一共...

  • 别慌!别慌!

    〈第221天〉 别慌!别慌!天天要求学生慢走!别跑!别慌!而自己遇到事了,也是慌里慌张的。特别是今天的报考的事儿。...

  • 真的遇到事儿了别慌

    不慌不忙 不是说说就可以的 真的遇到事儿了 你要学会慢一步 多停留几秒 不要让感性战胜理性 不要惊慌失措 不要怨天...

网友评论

      本文标题:遇到Websocket就不会测了?别慌,学会这个Jmeter插件

      本文链接:https://www.haomeiwen.com/subject/imzmhrtx.html