WebSocket接口测试方法

本文将介绍如何使用 WebSocket 进行接口测试,包括详细的测试方法和实例。

用 Apifox,节省研发团队的每一分钟

WebSocket接口测试方法

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

接口测试的重要性

接口测试是软件测试中的重要部分,它涉及到不同组件之间的交互和通信。接口测试的重要性在于,它可以发现和解决应用程序中的集成问题和错误,减少了不必要的返工,提高了应用程序的性能和稳定性。此外,接口测试可以提高系统的可维护性,使其更容易进行更新和升级。最后,接口测试可以促进团队协作,加强测试人员、开发人员和业务团队之间的合作,以确保软件开发的成功。综上所述,接口测试对于软件开发团队来说是至关重要的,它确保了软件的质量和整体性能。

WebSocket接口测试方法

WebSocket 接口测试方式

今天给大家讲一些测试 WebSocket 的方式:

  • 前端单元测试 WebSocket
  • Python 自动化测试 WebSocket
  • 使用 Postman 调试 WebSocket
  • 使用 Apifox 调试 WebSocket

前端单元测试 WebSokcet

安装 Jest 测试库

首先,我们需要需要安装 Jest 这个测试库

npm install jest ws --save-dev

代码实现

然后在项目中创建一个 websocket.test.js 文件,编写 WebSocket 连接的测试:

const WebSocket = require('ws');

describe('WebSocket Connection Test', () => {
  let ws;

  beforeEach(() => {
    // 建立WebSocket连接
    ws = new WebSocket('ws://localhost:3000');
  });

  it('should connect to WebSocket', (done) => {
    // 监听WebSocket的open事件
    ws.on('open', () => {
      expect(ws.readyState).toBe(1); // 验证连接状态
      done();
    });
  });

  afterEach(() => {
    // 关闭WebSocket连接
    ws.close();
  });
});

在这个测试用例中,我们首先创建 WebSocket 连接,并在 beforeEach 钩子中执行。在测试用例中,我们通过监听 WebSocket 的 open 事件来验证 WebSocket 的连接状态是否为 1,表示连接已经建立。然后在 afterEach 钩子中关闭 WebSocket 连接。

Python 自动化测试 WebSocket

引库、代码编写

要使用 Python 进行 Websocket 自动化测试,可以使用 Python 的WebSocket 模块和 unittest模块。下面是一个简单的例子,用于连接到 WebSocket 服务器并测试回传消息是否正确。

 # 导入模块
import websocket
import unittest

# 定义回调函数
class TestWebSocket(unittest.TestCase):
    def setUp(self):
        self.received_messages = []

        def on_message(ws, message):
            self.received_messages.append(message)

        def on_error(ws, error):
            raise AssertionError(error)

        def on_close(ws):
            pass

        def on_open(ws):
            ws.send("Hello, World!")

        # 连接WebSocket
        websocket.enableTrace(True)
        self.ws = websocket.WebSocketApp("ws://echo.websocket.org/",
                                         on_message = on_message,
                                         on_error = on_error,
                                         on_close = on_close)
        self.ws.on_open = on_open
        self.ws.run_forever()

    def test_received_message(self):
        self.assertEqual(len(self.received_messages), 1)
        self.assertEqual(self.received_messages[0], "Hello, World!")

这段代码定义了一个名为 TestWebSocket 的 unittest.TestCase 实例,其中包括 setUp 函数和 test_received_message 函数。

  • setUp 函数定义了回调函数,包括收到消息、错误和关闭 WebSocket 会话时的操作,并初始化 WebSocket 连接。
  • test_received_message 函数确保WebSocket客户端接收到正确的消息。它测试收到的消息列表是否仅包含一条消息,并且该消息为 “Hello,World!”。

测试运行

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(TestWebSocket)
    unittest.TextTestRunner(verbosity=2).run(suite)

这将运行 TestWebSocket 类的所有测试用例,并生成详细的测试结果报告。

Apifox 调试 WebSocket 服务

Apifox 有一个点很吸引我,那就是 Apifox 自带中文显示,这大大降低了使用门槛!

谷歌插件

Apifox 有 Web端 和 客户端。

如果你使用的是 Web端,想要调试本地服务,需要安装 Apifox 的 谷歌插件:Apifox 谷歌浏览器插件

Apifox 谷歌浏览器插件
Apifox 谷歌浏览器插件

新建 WebSocket 请求

WebSocket 是客户端和服务端之间的长链接,因此你需要在 Apifox 中创建一个 WebSocket 请求,以便跳转到 Apifox 界面并填写相应的请求信息。

  • 点击「创建」按钮
  • 填入 WebSocket 服务的地址
  • 填写 Message 和 Params(可选)
Apifox 调试 WebSocket 服务
新建 WebSocket 请求

Message 和 Params

Message

在 Message 中,你可以填写要传递到服务端的信息。服务端将接收你发送的信息。

Apifox 调试 WebSocket 服务
Message

Params

在传输过程中,你也可以携带参数,可以通过在地址上添加查询参数完成。

可以携带的数据类型包括:

  • string
  • integer
  • number
  • array
Apifox 调试 WebSocket 服务
Params

保存请求

写完所需信息之后,可以点击 保存按钮,进行保存,方便下次可继续调用。

Apifox 调试 WebSocket 服务
保存请求

连接、发送 WebSocket 请求

连接 WebSocket 服务

我们想要跟服务端进行 WebSocket 通信,就需要先建立一个 WebSocket 连接,我们只需要点击 连接 按钮。

Apifox 调试 WebSocket 服务
建立 WebSocket 连接

连接成功之后,Apifox 有成功的提示~

Apifox 调试 WebSocket 服务
连接成功

服务端那边也会因为连接成功,而做出响应。

发送 WebSocket 请求

接着我们就可以跟服务端进行 WebSocket 通信了。

我们可以使用 Apifox 点击发送按钮向服务端进行发送 Message、Params。

Apifox 调试 WebSocket 服务
发送 WebSocket 请求

与 WebSocket 服务通信

发送之后,服务端也可以向客户端发送信息,例如我这里,我设置服务端每秒向客户端发送当时的时间戳~

这就是 Apifox 的 WebSocket 功能,非常方便。

WebSocket 服务通信
与 WebSocket 服务通信

与 WebSocket 断开连接

如何不想连接了,可以点击断开按钮。

WebSocket 断开连接
点击断开

即可断开连接。

WebSocket 断开连接
与 WebSocket 断开连接

关于 Apifox

欢迎体验一下,完全免费的哦:在线使用 Apifox

Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。

Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。

个人使用体验还是不错的,推荐使用~

apifox
Apifox

知识扩展: