您的位置:老铁SEO > 站长新闻 > 网站技术 >

网络套接字测试方法_linux简介

文章来源:腾讯新闻

作者:优化

人气:11

2021-11-05 23:02:33

项目背景

最近有一个超级表项目测试,支持多人实时编辑表。项目选用基于TCP的全双工通信协议WebSocket,可实现服务器与客户端之间的主动数据推送,具有资源占用少、实时性高的特点。消息推送方式包括:一对一和一对多(均为广播)。

我们的项目使用WebSocket协议提交和广播增量数据,广播提示其他用户拉满数据,达到同步的目的。

websocket测试方式(linux入门基础)

在性能测试中,需要模拟多个用户协同编辑一个文档的场景,选择了Jmeter作为测试工具。

Jmeter插件

要在Jmeter中测试WebSocket协议接口,需要先安装WebSocket插件和依赖包。

要添加的插件有:

jmeter-web socket-samplers-1 . 2 . 1 . jar

相关包:jetty-http

码头io

jetty-util

websocket-api

websocket客户端

web socket-公共

将插件放在Jmeter的libext中,将依赖包放在Jmeter的lib目录中,打开Jmeter可以看到与WebSocket相关的采样器。

websocket测试方式(linux入门基础)

下表显示了这些采样器的功能:

websocket测试方式(linux入门基础)

常用的采样器是网络套接字开放连接和网络套接字请求-响应采样器。前者用于建立连接而不发送数据,后者建立连接并发送数据或仅发送数据。

创建脚本

在编写脚本之前,检查通过浏览器建立连接的过程。首先,打开文档时,使用HTTP升级和连接协议头将连接升级到WebSocket。

websocket测试方式(linux入门基础)

返回的状态代码101表示WebSocket CONNECTion已成功建立,协议已更改为WebSocket。如下图所示,浏览器已经连续发送了三个数据帧,包括连接连接建立、SUBSCRIBE文档和CLIENT_READY类型的SEND消息。客户端接收的数据包括服务器返回的响应和每25秒的心跳帧。

websocket测试方式(linux入门基础)

通过WebSocket协议提交、广播、拉取各种类型的增量数据。

了解这一点后,您可以开始添加和配置WebSocket的采样器,以便在测试场景中编写脚本。

1.右键单击测试计划,然后选择添加-线程-线程组,将线程组添加到测试计划中。

2.将网络套接字请求-响应采样器添加到线程组以建立连接,选择建立新的连接,并发送请求数据,如下所示:

websocket测试方式(linux入门基础)

说明:

(1)连接:有两种选择。第一个选项是使用现有的连接,也就是最后一个WebSocket请求建立的连接通道。选择后,服务器网址完全为灰色且只读,不可操作。第二项是创建新的连接通道。

(2)服务器网址:可以发送ws。

协议和加密的WebSocket,即wss协议。Server Name Or IP处填写WebSocket服务器的地址,Port和Path依照实际填写即可。

(3)Request data:支持文本(包括JSON)和Binary二进制数据的发送,可以将浏览器中查看到的数据根据需求参数化之后填写。默认请求响应的超时时间为6S,超过这个时间报错。

因为要通过收到返回包含CONNECTED字样的报文来判断是否发送后续的消息。需要把收到的服务端返回的其他数据帧过滤掉,再用断言进行判断。

右键单击WebSocket request-response Sampler添加->配置元件->WebSocket Text Frame Filter,配置条件过滤掉不需要的数据帧,如心跳帧等。

websocket测试方式(linux入门基础)

右键添加->断言->响应断言,添加断言对建立连接的响应帧进行判断。

websocket测试方式(linux入门基础)

第一个建立连接的请求成功后,后续WebSocket request-response Sampler的连接类型选择使用已存在的连接,下面的Server URL全置灰只读不可操作。

websocket测试方式(linux入门基础)

添加后续的SUBSCRIBE订阅文档,通过固定请求数据中的文档id可以使所有用户打开同一个文档,添加SEND类型为CLIENT_READY消息请求后,就完成了基本的打开文档建立连接的操作,之后可以添加循环控制器并用类似的方法添加发送编辑文档的请求。

运行脚本

脚本完成之后配置线程组的线程数,循环次数或执行时间,即可模拟并发用户同时编辑文档,添加结果树、聚合报告等监听器后可以查看测试的运行情况:

websocket测试方式(linux入门基础)

从浏览器也可以验证收到了其他并发用户广播的数据。

websocket测试方式(linux入门基础)

除了多用户协同编辑用一个文档的场景,性能测试的过程中还覆盖了协同用户保存同一文档、不同文档同时保存等场景,确保测试场景的充分性。

上一篇:如何发布qq小说阅读器_免费小说阅读器app

下一篇:没有了

相关文章

在线客服

外链咨询

扫码加我微信

微信:juxia_com

返回顶部