国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

這篇具有很好參考價值的文章主要介紹了如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

引言

WebSocket介紹

HTTP與WebSocket的區(qū)別

WebSocket測試方法

使用在線工具

使用Postman

使用Jmeter

使用Python

結語


引言

你是否曾經為 WebSocket 接口測試中復雜的協議和難以捕獲的數據而感到束手無策?WebSocket 協議與傳統的 HTTP 協議不同,測試方法也需要針對其特殊性進行優(yōu)化。

本文將向您介紹一些在 WebSocket 接口測試中提高效率的實用方法和技巧,希望對您學習WebSocket有所幫助。

WebSocket介紹

WebSocket 是一種基于在單個 TCP 連接上進行全雙工通信的協議,是從HTML5開始提供的一種瀏覽器與服務器之間進行全雙工通訊的網絡技術,解決了HTTP協議不適用于實時通信的缺點,相較于 HTTP 協議,WebSocket 協議實現了持久化網絡通信,可以實現客戶端和服務端的長連接,能夠進行雙向實時通信,協議名為"ws"。

HTTP與WebSocket的區(qū)別

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

  1. 兩者都是基于TCP協議進行數據傳輸,具有可靠的傳輸能力,而且都是應用層協議
  2. HTTP是單向的通信,只能由客戶端向服務端發(fā)送請求,服務端無法主動向客戶端發(fā)送消息
  3. WebSocket是雙向通信,客戶端和服務端是通過握手建立連接,可實現全雙工通信,雙方可以同時主動向對方發(fā)送消息
  4. WebSocket在建立連接時數據是通過HTTP協議傳輸的,但是建立之后,真正傳輸數據時使用的是更加可靠的TCP協議

二者關系

  • WebSocket在建立連接時,HTTP通過Upgrade消息頭來通知客戶端需要采用WebSocket協議來完成這個請求,在發(fā)送完此響應最后的空行后,服務器就會切換到WebSocket協議,接口返回狀態(tài)碼為101,表示服務器已經理解了客戶端的請求,需要升級協議

WebSocket測試方法

使用在線工具

在線工具有很多,自行百度吧!個人習慣用這個工具

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

使用Postman

Postman支持測試WebSocket協議的接口,此文章發(fā)布時還處于公測階段,需要登錄后才能使用,入口如下圖所示

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

操作跟測試HTTP請求類似,不過多介紹啦!如下圖所示

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

使用Jmeter

使用Jmeter既可以單獨測接口,也可以進行性能測試,但測試WebSocket協議需要安裝插件,下載插件后放到Jmeter安裝路徑中的lib/ext目錄下,重啟Jmeter后在【選項】菜單中會出現【Plugins Manager】,然后在可用插件Tab頁搜索WebSocket,進行安裝即可,如下圖所示

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

安裝后新建【線程組】,在添加【取樣器】中會出現6項WebSocket的組件

  • WebSocket Close:用于關閉WebSocket連接
  • WebSocket Open Connection:只建立WebSocket連接,不發(fā)送數據
  • WebSocket Ping/Pong:用于心跳檢測,為了保持長連接,防止客戶端被服務端判定為不活躍而被斷開
  • WebSocket Single Read Sampler:用于接收一個(文本或二進制)數據
  • WebSocket Single Write Sampler:用于發(fā)送一個(文本或二進制)數據
  • WebSocket request-response Sampler:用于執(zhí)行基本的請求和響應交換,既能發(fā)送數據又可以接收數據

若有使用過Jmeter就肯定能明白這些組件的使用方法,以WebSocket request-response Sampler為例,頁面信息介紹如下圖所示

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

使用Python

首先需要安裝websocket-client

pip install websocket-client

對于只是測試WebSocket接口發(fā)送接收消息是否正常,不需要長時間連接,可以使用下面的短連接方法,在請求結束后會主動斷開連接

from websocket import create_connection

user1 = create_connection("ws://localhost:6688/1")	# 用戶1打開連接
user2 = create_connection("ws://localhost:6688/2")	# 用戶2打開連接

print("獲取響應狀態(tài)碼:", user1.getstatus()) # 正常應返回101
print("獲取響應頭:", user2.getheaders())

user1.send("你好呀!")	 # 用戶1向服務端發(fā)送消息

res1 = user1.recv()		# 查看服務端推送的消息
res2 = user2.recv()

if res1 == res2:
    print("服務端消息推送成功!\n")
else:
    print("消息獲取異常!\n")
    
print("查看用戶1收到的消息:",res1,"\n查看用戶2收到的消息:",res2)

若是要對WebSocket接口做持續(xù)監(jiān)聽工作,需要長連接,但不需要傳參,只是監(jiān)聽消息,使用WebSocketApp類就更合適啦!方法如下

import websocket

def on_open(ws):				# 定義用來處理打開連接的方法
    print("打開連接")
    
def on_message(ws, message):	# 定義用來監(jiān)聽服務器返回消息的方法
    print("監(jiān)聽到服務器返回的消息,:\n", message)

def on_error(ws, error):		# 定義用來處理錯誤的方法
    print("連接出現異常:\n", error)

def on_close(ws):				# 定義用來處理斷開連接的方法
    print("關閉連接")

if __name__ == "__main__":
    websocket.enableTrace(True) # 可選擇開啟跟蹤,在控制臺可以看到詳細的信息
    ws = websocket.WebSocketApp("ws://localhost:6688",
                                on_open=on_open,
                                on_message=on_message,
                                on_error=on_error,
                                on_close=on_close)
    ws.run_forever()	# 調用run_forever方法,保持長連接

還可以使用Pytest對WebSocket接口實現自動化測試,示例如下

import pytest
from websocket import create_connection

class TestDyd():
    url = "ws://localhost:6688"

    @classmethod
    def setup_class(cls):
        cls.ws = create_connection(cls.url)  # 建立連接
        cls.ws.settimeout(5)  # 設置超時時間

    def test_connect(self):
        # 通過狀態(tài)碼判斷連接是否正常
        assert self.ws.getstatus() == 101

    def test_send(self):
        params = "你好呀!"  			# 定義傳參

        self.ws.send(params)			# 發(fā)送請求
        result = self.ws.recv()			# 獲取響應結果
        print("收到來自服務端的消息:", result)	# 打印響應結果
        # 因為該測試項目傳參會顯示在響應中,所以通過判斷傳參是否在響應結果中進行斷言
        assert params in result

if __name__ == '__main__':
    pytest.main(["-vs"])

傳參可以使用@pytest.mark.parametrize()裝飾器,示例如下

import pytest
from websocket import create_connection

class TestDyd():
    
    data = [("/user/2", "今天開直播賣魚?。。。?),("/user/3", "魚可以買來放生嗎?"),
            ("/user/4", "那條翻白肚的魚有死亡證明嗎?"),("/user/5", "你的魚會唱歌嗎?"),
            ("/user/6", "你的魚上大學了嗎?"),("/user/7", "你的魚買回來需要隔離嗎?")]

    @pytest.mark.parametrize("user, word", data)
    def test_send(self, user, word):
        ws = create_connection("ws://localhost:6688"+user)
        params = word  

        ws.send(params)  # 發(fā)送請求
        result = ws.recv()  # 獲取響應結果
        print("來自服務端的消息:", result)
        assert params in result	# 斷言

如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

先簡單介紹這些吧,關于Python腳本,可以參考官方文檔,里面有示例和常見問題解決方法

結語

這篇貼子到這里就結束了,最后,希望看這篇帖子的朋友能夠有所收獲。

?獲取方式:留言【WebSocket學習】即可

如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續(xù)輸出更多優(yōu)質文章的最強動力!

?文章來源地址http://www.zghlxwxcb.cn/news/detail-469069.html

到了這里,關于如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【⑤MySQL函數】:讓你的數據庫操作更高效(二)

    【⑤MySQL函數】:讓你的數據庫操作更高效(二)

    前言 ?歡迎來到小K的MySQL專欄,本節(jié)將為大家?guī)鞰ySQL日期時間、條件判斷、系統信息、加密、進制轉換和IP地址轉換函數的講解 ? 一、日期和時間函數 函數 作用 CURDATE(),CURRENT_DATE() 返回當前日期 CURTIME(),CURRENT_TIME() 返回當前時間 NOW(),CURRENT_TIMESTAMP(),LOCALTIME(), SYSDAT

    2024年02月10日
    瀏覽(17)
  • jmeter如何測試websocket接口?

    jmeter如何測試websocket接口?

    jmeter做接口測試,很多人都是做http協議的接口,就有很多人問websocket的接口怎么測試??? 首先,我們要明白,websocket接口是什么接口。 然后,我們怎么用jmeter測試? jmeter要測試websocket接口,需要先下載安裝一個websocket samplers by peter doornbosch?的插件,插件安裝成功后,再次

    2024年02月08日
    瀏覽(23)
  • chatgpt賦能python:Python數值互換:讓你的編程更加高效

    Python是一種高級編程語言,其靈活性和易于學習的特點使其在科學計算、數據分析和人工智能等領域變得非常流行。作為Python的用戶,很多時候你可能需要將數值類型之間進行轉換,這樣可以提高你的編程效率。在本文中,我們將介紹Python中數值互換的知識,并提供一些幫助

    2024年02月09日
    瀏覽(24)
  • 「NTFS:讓你的硬盤更安全、更高效!」NTFS文件系統詳解,

    「NTFS:讓你的硬盤更安全、更高效!」NTFS文件系統詳解,

    NTFS(New Technology File System)是一種現代的文件系統,是Windows操作系統中最常用的文件系統之一。它是一種高效、可靠、安全的文件系統,支持大容量存儲、文件加密、壓縮、權限控制等功能。本文將詳細介紹NTFS文件系統的結構、$Boot文件、$MFT元文件、文件記錄、屬性的屬性

    2024年02月08日
    瀏覽(15)
  • 測試人必備技能:如何進行WebSocket接口測試?

    測試人必備技能:如何進行WebSocket接口測試?

    目錄 前言 WebSocket介紹 HTTP與WebSocket的區(qū)別 二者關系 WebSocket測試方法 使用Postman 使用Jmeter 使用Python 結語 隨著Web應用的日益普及, WebSocket作為一種全雙工通信協議,在移動端、游戲、視頻會議等方面得到廣泛應用。 而對于需要實時通信的Web應用來說,WebSocket接口測試是非常

    2024年02月09日
    瀏覽(24)
  • 掌握這5款 Edge插件,讓你的瀏覽器使用更高效!

    掌握這5款 Edge插件,讓你的瀏覽器使用更高效!

    您好,今天我想向您推薦兩款不常用的 Edge 插件,它們可以幫助您更高效地瀏覽網頁和管理標簽頁。這些插件可能不像一些常見的插件那樣廣為人知,但它們的功能卻非常實用。 IHome新標簽頁插件 下載地址: https://microsoftedge.microsoft.com/addons/detail/ihome%E5%8E%9Fbdtab%E6%96%B0%E6%A0%

    2024年02月04日
    瀏覽(25)
  • chatgpt賦能python:重新配置PyCharm,讓你的Python編程更加高效

    PyCharm是一個流行的Python集成開發(fā)環(huán)境,被廣泛用于Python編程。但是,有時候我們需要重新配置PyCharm以適應特定的工作需求或優(yōu)化其性能,這篇文章將討論如何重新配置PyCharm,以便更好地支持Python編程。 首先,我們需要了解PyCharm的配置選項,這里我們將重點介紹以下幾個:

    2024年02月12日
    瀏覽(29)
  • 每天分享五款工具,讓你的工作辦公更順心

    每天分享五款工具,讓你的工作辦公更順心

    快樂不是在于擁有什么,而在于我們和別人分享什么。每天分享五款工具,讓大家工作辦公更順心就是我最大的快樂。 Krita是一款免費的開源繪畫軟件,適合專業(yè)和業(yè)余的繪畫愛好者,支持多種畫筆和圖層。你可以使用Krita來創(chuàng)作各種風格的繪畫作品,如漫畫、插畫、概念圖、

    2023年04月12日
    瀏覽(17)
  • 30個前端和設計必備網站,讓你的工作更輕松!

    30個前端和設計必備網站,讓你的工作更輕松!

    當今互聯網時代,前端開發(fā)和設計領域變化迅速,每天都會有新技術和工具不斷涌現。無論你是一名前端工程師還是一名設計師,都需要不斷了解最新的前沿技術和工具。下面是30個前端和設計經常會用到的網站,以及每個網站的功能介紹。 鏈接:https://www.w3schools.com/ W3Scho

    2024年01月16日
    瀏覽(94)
  • 一文讀懂大數據工具Phoenix:讓你的數據管理更高效!

    一文讀懂大數據工具Phoenix:讓你的數據管理更高效!

    介紹:Phoenix,最初由saleforce開發(fā)并開源,后成為Apache基金會的頂級項目。它是一個構建在HBase上的SQL層,可以使用標準的JDBC APIs而不是HBase客戶端APIs來創(chuàng)建表、插入數據和查詢HBase中的數據。此外,Phoenix還完全使用Java編寫,作為HBase內嵌的JDBC驅動,將SQL查詢轉換為一個或多個

    2024年01月20日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包