websocket 接口如何测试?

什么是 websocket 接口?

使用 websocket 建立长连接,服务端和客户端可以互相通信,服务端只要有数据更新,就可以主动推给客户端。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

在线测试websocket接口

websocket接口如何测试呢?可以用在线网站

服务端也可以给客户端返回消息,具体的接口测试,按接口文档输入对应的 ws/wss 地址和请求参数就行。

Websocket在线测试-Websocket接口测试-Websocket模拟请求工具


测试方法:

(1)打开连接

(2)关闭连接

(3)打开连接关闭连接再打开连接

(4)长连接(长时间连接不断开)

(5)发送消息,检查是否实时更新情况

(6)接收消息,检查是否实时更新情况

(7)并发压力测试,

测试工具可以通过jmeter进行测试

WebSocket插件安装:

安装ws插件,并重启jmeter:点击选项->Plugins Manager-输入ws安装这两个插件

 

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

 

简单介绍一下Sample Socket组件的界面
1、WebServer
(1)Server Name or IP:WebSocket发送的目标服务器的地址或者名称
(2)Port Number :WebSocker服务器监听的端口号。(可以通过WireShark数据包得到)

2、Timeout: 
(1)Connection – 发送一个连接请求后,Jmeter等待连接完成的最长时间,单位是毫秒。
(2)Response - 对响应消息的最大等待时间。

3、WebSocket Request
(1)Implementation – 只支持RFC6455(v13) ,WebSocket协议标准的最新版。
(2)Protocol – 有ws与wss之分,  ws前缀是WebSocket连接的辨别标识,wss前缀是WebSocket安全连接的辨别标识。根据自己的实际情况填写
(3)Streaming Connection – 选择这个TCP session要不要保持,如果勾上标识连接会一直存在,如果没有勾上,那么得到第一次响应后该链接就会被关闭。(*重要!不勾选的话,请求成功就会断开连接)
(4)Request data:请求内容,填入将要发送的请求,要跟开发沟通好,这个是什么格式的消息。

(5)Connection Id: 连接ID (*重要!就是通过这个来区分不同会话)

(6)Path:路径参数

4.WebSocket Response
(1)Response Pattern – 采样器将等待含有该标识的消息并继续通信(或者直到timeout,该连接关闭)
(2)Close Connection Pattern – 如果服务器返回的消息含有这样的字符,就结束会话。
(3)Message Backlog – 保留返回结果的数量(如果希望只保留最新一条,可以设定为1)

 

 测试方案详看:Jmeter对Web Socket进行压力测试_一只小鱼-CSDN博客_websocket并发压力测试

jmeter如何设置websocket长时间连接持续返回结果_一只小鱼-CSDN博客

JMeter测试websocket性能测试基础实战之QPS检测过程解析_一只小鱼-CSDN博客

### 使用 `unittest` 框架进行 WebSocket 接口测试 为了确保每个测试方法在执行前都拥有一个干净的 WebSocket 连接,在 `setUp` 方法中建立连接,并在 `tearDown` 方法中断开连接[^1]。这有助于保持测试环境的一致性和独立性。 ```python import unittest from websocket import create_connection class WebSocketTest(unittest.TestCase): def setUp(self): self.ws = create_connection("ws://localhost:8765") def tearDown(self): self.ws.close() def test_send_and_receive_message(self): message_to_send = "Hello, Server!" self.ws.send(message_to_send) response = self.ws.recv() assert response == f"Echo: {message_to_send}" ``` ### 利用 `pytest-asyncio` 和 `websockets` 库实现异步 WebSocket 测试 对于更复杂的场景,特别是当应用程序逻辑涉及大量异步操作时,推荐采用 `pytest-asyncio` 结合 `websockets` 来构建测试案例[^2]: #### 安装依赖库 ```bash pip install pytest-asyncio websockets ``` #### 编写异步测试脚本 ```python import asyncio import pytest import websockets @pytest.mark.asyncio async def test_websocket_async(): uri = 'ws://example.com/socket' async with websockets.connect(uri) as ws: await ws.send('Ping') pong = await ws.recv() assert pong == 'Pong!' ``` ### 借助 Postman 或其他图形界面工具简化 WebSocket 调试过程 除了编程方式外,还可以利用像 Postman 这样的可视化工具来进行 WebSocket 请求的设计与调试工作[^3][^4]。这类工具有直观的操作界面,支持发送消息并实时查看服务器返回的数据流变化情况。 另外,某些 IDE 或编辑器插件也提供了类似的 WebSocket 功能模块,允许开发者快速搭建起用于开发阶段的基础通信链路。 ### 创建基于浏览器端的小型 HTML 文件作为临时解决方案 如果希望更加灵活地控制整个流程,则可以通过编写一段简单的 JavaScript 代码嵌入到网页文件里来完成基本的功能验证: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>WebSocket Test</title> <script type="text/javascript"> var socket; function init() { socket = new WebSocket('wss://echo.websocket.org'); socket.onopen = function(event){ console.log('Connection opened', event); sendMessage(); }; socket.onmessage = function(event){ document.getElementById('response').innerText=event.data; }; } function sendMessage(){ var msg=document.getElementById('inputMessage').value; socket.send(msg); } </script> </head> <body onload="init()"> <input id="inputMessage"/> <button onclick="sendMessage()">Send Message</button><br/> <div id="response"></div> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小鱼o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值