Postman 如何進行 Websocket 介面測試

大话性能發表於2024-03-13

WebSocket

[WebSocket] 協議通常用於實現 Web 實時互動應用程式,比如線上遊戲、線上聊天、實時推送等。這些應用需要透過網路即時地推送資料,協議的實時性和雙向通訊特性可以滿足這些要求。

相對於傳統的輪詢和長輪詢方式,WebSocket 的優勢在於實現了真正的雙工通訊,同時降低了網路開銷。傳統的輪詢方式會頻繁地傳送請求來獲取資料,而 WebSocket 建立了一條連線後可以持續傳輸資料,減少網路開銷。

Nodejs 實現 WebSocket 服務

安裝 ws 包

我們需要使用到 ws 這個包來起一個 WebSocket 服務:

npm i ws

程式碼實現

 // 匯入WebSocket包
const WebSocket = require('ws');

// 建立WebSocket伺服器監聽3000埠
const wss = new WebSocket.Server({ port: 3001 });

// 監聽連線事件,當客戶端連線到WebSocket伺服器時觸發
wss.on('connection', function connection(ws) {
  // 每秒向前端傳送訊息
  const timer = setInterval(() => {
    ws.send('I am Nodejs WebSocket');
  }, 1000);

  // 監聽前端發過來的訊息,並在控制檯輸出訊息內容
  ws.on('message', function incoming(message) {
    // 獲取查詢引數
    const queryParams = conn.path.split('?')[1];
    console.log('query', queryParams)
    console.log('received: %s', message);
  });

  // 監聽斷開連線事件,清除計時器
  ws.on('close', function close() {
    clearInterval(timer);
  });
});

除錯 WebSocket 介面

當我們寫完一個 WebSocket 介面之後,我們需要去除錯他,確保他的正確性,包括:

  • 確認 WebSocket 介面能否正常工作
  • 檢查 WebSocket 介面返回資料格式是否正確
  • 檢查 WebSocket 介面是否存在錯誤
  • 分析 WebSocket 介面的效能

使用 [Postman] 除錯 WebSocket

Postman

建立一個 WebSocket 請求

點選 NEW 按鈕,建立一個請求。

建立請求

選擇 WebSocket Request。

選擇 WebSocket Request

Message、Params

在 WebSocket 請求中,可以傳遞 Message、Params。

傳遞 Message

Query Params 會被帶在 URL 上。

傳遞 Params

連線 WebSocket 服務

客戶端與服務端想要進行 WebSocket 通訊,就需要進行第一次的連線,我們點選 Connect。

連線成功後, Postman 會提醒你連線成功。

連線 WebSocket 服務

傳送 Message

接著我們可以傳送 Message 了,可以看到,客戶端這邊可以拿到服務端那邊每秒給我們傳送的訊息。

傳送 Message

服務端那邊也可以接收到我們傳過去的 Message、Params。

斷開 WebSocket 連線

如果你想斷開連線,可以點選 Disconnect。

斷開 WebSocket 連線

Apifox 除錯 WebSocket 服務

如果你正在編寫 WebSocket 服務並需要進行除錯,我建議你使用一些很棒的 API 除錯工具,如 Apifox,這款工具可以完美除錯 WebSocket 服務~

新建 WebSocket 請求

WebSocket 是客戶端和服務端之間的長連結,因此你需要在 Apifox 中建立一個 WebSocket 請求,以便跳轉到 Apifox 介面並填寫相應的請求資訊:

  • 點選建立按鈕
  • 填入 WebSocket 服務的地址
  • 可以選擇填寫 Message 和 Params

新建 WebSocket 請求

Message 和 Params

Message

在 Message 中,你可以填寫要傳遞到服務端的資訊。服務端將接收你傳送的資訊。

Message

Params

在傳輸過程中,你也可以攜帶引數,可以透過在地址上新增查詢引數完成,可以攜帶的資料型別包括:

  • string
  • integer
  • number
  • array

Params

儲存請求

寫完所需資訊之後,可以點選 儲存按鈕,進行儲存,方便下次可繼續呼叫。

儲存請求

連線、傳送 WebSocket 請求

連線 WebSocket 服務

我們想要跟服務端進行 WebSocket 通訊,就需要先建立一個 WebSocket 連線,我們只需要點選 連線 按鈕。

建立 WebSocket 連線

連線成功之後,Apifox 有成功的提示。

連線成功

服務端那邊也會因為連線成功,而做出響應。

傳送 WebSocket 請求

接著我們就可以跟服務端進行 WebSocket 通訊了。

我們可以使用 Apifox 點選傳送按鈕向服務端進行傳送 Message、Params。

傳送 WebSocket 請求

與 WebSocket 服務通訊

傳送之後,服務端也可以向客戶端傳送資訊,例如我這裡,我設定服務端每秒向客戶端傳送當時的時間戳~

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

與 WebSocket 服務通訊

與 WebSocket 斷開連線

如何不想連線了,可以點選斷開按鈕。

點選斷開

即可斷開連線。

與 WebSocket 斷開連線

Apifox 比 Postman 出色在哪?

如果你正在考慮改變 API 測試工具,那麼 Apifox 是一個優秀的選擇。與 Postman 相比,Apifox 具有以下優勢:

APIFOX POSTMAN
Apifox 是一個基於雲的平臺,允許開發人員從任何位置訪問並測試其 API,無需在計算機上安裝任何軟體。當然 Apifox 也為主流作業系統提供了客戶端版本。 Postman 是一個必須安裝在計算機上的獨立應用程式,這可能限制了要從多個位置工作的開發人員的可訪問性。
Apifox 提供了一個視覺上吸引人且易於使用的介面,使開發人員能夠輕鬆除錯介面和生成文件。 Postman 具有更復雜的介面,需要以程式碼為重點,這可能提高了部分開發者的使用門檻。
Apifox 還提供了協作功能和團隊管理,允許開發人員和他人共享測試和介面文件,並共同處理專案。 Postman 可能會消耗大量資源,尤其是在處理大量資料集時可能會減慢計算機的速度,這可能會對需要執行多個測試或者使用大型 API 集合的開發人員造成挑戰。
Apifox 提供了無限的自定義選項配置,並且更加靈活。 Postman 提供了比較有限的自定義選項,例如自定義外部變數,響應頭 Header 以及指令碼。

與 Postman 相比,Apifox 解決了在多個工具間頻繁切導致的資料不一致問題,讓一個 Apifox 即可完成 API 文件、API 除錯、API Mock、API 自動化測試等工作。

與只支援有限自定義配置項的 Postman 對比,Apifox 提供了無限的自定義選項配置,更加靈活。對於那些想要使用新工具去提升開發水平的團隊來說,Apifox 一定是個明智之選。

更多內容可以學習《測試工程師 Python 工具開發實戰》書籍《大話效能測試 JMeter 實戰》書籍

相關文章