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

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

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

目錄

前言

WebSocket介紹

HTTP與WebSocket的區(qū)別

二者關(guān)系

WebSocket測試方法

使用Postman

使用Jmeter

使用Python

結(jié)語


前言

隨著Web應(yīng)用的日益普及,WebSocket作為一種全雙工通信協(xié)議,在移動端、游戲、視頻會議等方面得到廣泛應(yīng)用。

而對于需要實時通信的Web應(yīng)用來說,WebSocket接口測試是非常重要的一環(huán)。然而,許多測試人員在進行WebSocket接口測試時,可能會遇到很多困惑和挑戰(zhàn)。這些問題包括如何模擬WebSocket消息、如何進行連接和斷開操作以及如何驗證返回結(jié)果等。

今天,我將分享一些關(guān)于WebSocket接口測試的心得和技巧,幫助大家更好地掌握這個技能,無論你是初學者還是有經(jīng)驗的測試人員,相信這篇文章都會給你帶來不少啟發(fā)。

WebSocket介紹

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

HTTP與WebSocket的區(qū)別

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

  1. 兩者都是基于TCP協(xié)議進行數(shù)據(jù)傳輸,具有可靠的傳輸能力,而且都是應(yīng)用層協(xié)議
  2. HTTP是單向的通信,只能由客戶端向服務(wù)端發(fā)送請求,服務(wù)端無法主動向客戶端發(fā)送消息
  3. WebSocket是雙向通信,客戶端和服務(wù)端是通過握手建立連接,可實現(xiàn)全雙工通信,雙方可以同時主動向?qū)Ψ桨l(fā)送消息
  4. WebSocket在建立連接時數(shù)據(jù)是通過HTTP協(xié)議傳輸?shù)模墙⒅螅嬲齻鬏敂?shù)據(jù)時使用的是更加可靠的TCP協(xié)議

二者關(guān)系

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

WebSocket測試方法

使用在線工具

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

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

使用Postman

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

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

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

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

使用Jmeter

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

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

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

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

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

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

使用Python

首先需要安裝websocket-client

pip install websocket-client

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

from websocket import create_connection

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

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

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

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

if res1 == res2:
    print("服務(wù)端消息推送成功!\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)聽服務(wù)器返回消息的方法
    print("監(jiān)聽到服務(wù)器返回的消息,:\n", message)

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

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

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()	# 調(diào)用run_forever方法,保持長連接

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

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)  # 設(shè)置超時時間

    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()			# 獲取響應(yīng)結(jié)果
        print("收到來自服務(wù)端的消息:", result)	# 打印響應(yīng)結(jié)果
        # 因為該測試項目傳參會顯示在響應(yīng)中,所以通過判斷傳參是否在響應(yīng)結(jié)果中進行斷言
        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()  # 獲取響應(yīng)結(jié)果
        print("來自服務(wù)端的消息:", result)
        assert params in result	# 斷言

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

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

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

結(jié)語

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

如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強動力!文章來源地址http://www.zghlxwxcb.cn/news/detail-492998.html

到了這里,關(guān)于測試人必備技能:如何進行WebSocket接口測試?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • jmeter如何測試websocket接口?

    jmeter如何測試websocket接口?

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

    2024年02月08日
    瀏覽(23)
  • 如何讓你的 WebSocket 接口測試更高效?拯救你的接口測試工作

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

    目錄 引言 WebSocket介紹 HTTP與WebSocket的區(qū)別 WebSocket測試方法 使用在線工具 使用Postman 使用Jmeter 使用Python 結(jié)語 你是否曾經(jīng)為 WebSocket 接口測試中復(fù)雜的協(xié)議和難以捕獲的數(shù)據(jù)而感到束手無策?WebSocket 協(xié)議與傳統(tǒng)的 HTTP 協(xié)議不同,測試方法也需要針對其特殊性進行優(yōu)化。 本文將

    2024年02月07日
    瀏覽(21)
  • 服務(wù)端測試開發(fā)必備技能:Mock測試

    服務(wù)端測試開發(fā)必備技能:Mock測試

    Mock 測試就是在測試活動中,對于某些不容易構(gòu)造或者不容易獲取的數(shù)據(jù)/場景,用一個Mock對象來創(chuàng)建以便測試的測試方法。 無法控制第三方系統(tǒng)接口的返回,返回的數(shù)據(jù)不滿足要求 依賴的接口還未開發(fā)完成,就需要對被測系統(tǒng)進行測試 測試過程中如果大量使用Mock,mock測試

    2024年04月15日
    瀏覽(20)
  • 如何使用Jmeter對WebSocket進行壓力測試

    如何使用Jmeter對WebSocket進行壓力測試

    01 環(huán)境準備 Jmeter對WebSocket協(xié)議的環(huán)境準備: 因為Jmeter本身不支持WebSocket協(xié)議的,所以需要安裝第三方的插件JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar,并直接將這個jar包放到Jmeter軟件的libext目錄下。 查閱https://github.com/maciejzaleski/JMeter-WebSocketSampler/wiki/Dependencies看到,這個插件需要以

    2024年02月08日
    瀏覽(23)
  • 軟件測試必備7大技能

    軟件測試必備7大技能

    1.在測試中最重要的文檔,他是測試工作的核心,是一組在測試時輸入輸出的標準,是軟件需求的具體對照。編寫測試用例,是測試人員的基本功,真正能寫好的人并不多。 2.測試用例包含的內(nèi)容:用例編號,用例名稱,測試背景,前置條件,優(yōu)先級,測試數(shù)據(jù),測試步驟,

    2024年02月08日
    瀏覽(22)
  • 性能測試必備監(jiān)控技能windows篇

    性能測試必備監(jiān)控技能windows篇

    在手頭沒有專門的第三方監(jiān)控時,該怎么監(jiān)控服務(wù)指標呢?本篇就windows下監(jiān)控進行分享,也是我們在進行性能測試時,必須掌握的。下面我們就windows下常用的三種監(jiān)視工具進行說明: 任務(wù)管理器 資源監(jiān)視器 性能監(jiān)視器 在[開始] - [開始搜索]框中輸入 taskmgr 打開任務(wù)管理 r

    2024年02月14日
    瀏覽(24)
  • 測試開發(fā)工程必備技能之一:Mock的使用

    測試開發(fā)工程必備技能之一:Mock的使用

    在實際產(chǎn)品開發(fā)過程中,某個服務(wù)或前端依賴一個服務(wù)接口,該接口可能依賴多個底層服務(wù)或模塊,或第三方接口,比如說服務(wù) A 依賴服務(wù)B,服務(wù)B又依賴服務(wù) C,如下圖所示: 這種依賴的問題會導(dǎo)致原本的需求目的是要驗證服務(wù)A,但由于所依賴的服務(wù)B或者服務(wù)C不穩(wěn)定或者

    2024年02月11日
    瀏覽(26)
  • 2023軟件測試工程師必備技能?要卷,誰還不會了......

    2023軟件測試工程師必備技能?要卷,誰還不會了......

    軟件測試崗位是怎樣的? 大伙:測試?簡單啊,沒什么技術(shù)含量,無非就是看需求、看業(yè)務(wù)手冊、看設(shè)計文檔、然后點點功能是否實現(xiàn),麻煩點的就是測試下部署安裝是否出現(xiàn)兼容性問題等 web自動化測試:https://www.bilibili.com/video/BV1MS4y1W79K/ 沒錯,不可否認這是踏入軟件測試

    2023年04月20日
    瀏覽(36)
  • Java必備技能之環(huán)境搭建篇 (linux ab壓力測試)

    Java必備技能之環(huán)境搭建篇 (linux ab壓力測試)

    yum -y install httpd-tools ab的參數(shù)說明 4、檢測版本 ab -V [root@vic html]# ab --help ab: wrong number of arguments Usage: ab [options] [http[s]??/]hostname[:port]/path Options are: -n requests Number of requests to perform -c concurrency Number of multiple requests to make -t timelimit Seconds to max. wait for responses -b windowsize Size of TCP

    2024年04月22日
    瀏覽(23)
  • 面試時如何回答接口測試怎么進行

    面試時如何回答接口測試怎么進行

    一、什么是接口測試 接口測試顧名思義就是對測試系統(tǒng)組件間接口的一種測試,接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數(shù)據(jù)的交換,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。 二、為什么要做接口

    2024年02月12日
    瀏覽(15)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包