軟件測試 | websocket接口測試
簡介
WebSocket 是一種在單個 TCP 連接上進行全雙工通信(Full Duplex 是通訊傳輸?shù)囊粋€術(shù)語。通信允許數(shù) 據(jù)在兩個方向上同時傳輸,它在能力上相當(dāng)于兩個單工通信方式的結(jié)合。全雙工指可以同時(瞬時)進 行信號的雙向傳輸( A→B 且 B→A )。指 A→B 的同時 B→A,是瞬時同步的)的協(xié)議。
WebSocket 通信協(xié)議于 2011 年被 IETF 定為標(biāo)準(zhǔn) RFC 6455,并由 RFC7936 補充規(guī)范。WebSocket API (WebSocket API 是一個使用WebSocket 協(xié)議的接口,通過它來建立全雙工通道來收發(fā)消息) 也被 W3C 定為標(biāo)準(zhǔn)。
WebSocket 使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù)。 在 WebSocket API 中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接, 并進行雙向數(shù)據(jù)傳輸。
而 HTTP 協(xié)議就不支持持久連接,雖然在 HTTP1.1 中進行了改進,使得有一個 keep-alive,在一個 HTTP 連接中,可以發(fā)送多個 Request,接收多個 Response。
但是在 HTTP 中 Request = Response 永遠是成立的,也就是說一個 request 只能有一個response。而且 這個response也是被動的,不能主動發(fā)起。
websocket 常用于社交/訂閱、多玩家游戲、協(xié)同辦公/編輯、股市基金報價、體育實況播放、音視頻聊 天/視頻會議/在線教育、智能家居與基于位置的應(yīng)用。
websocket 接口不能使用 requests 直接進行接口的調(diào)用,可以依賴第三方庫的方式來實現(xiàn)調(diào)用,以下內(nèi) 容介紹如何調(diào)用第三方庫實現(xiàn) websocket 的接口自動化測試。
實戰(zhàn)
使用 python 語言實現(xiàn) websocket 的接口自動化
環(huán)境準(zhǔn)備
安裝 pyhton3 環(huán)境
下載需要的運行庫
pip install websocket-client
實戰(zhàn)演示
1.連接 websoket 服務(wù)器
1.發(fā)送websoket消息
1.接收websocket消息
1.關(guān)閉websocket連接
1.websocket 第三方庫的調(diào)用不支持直接發(fā)送除字符串外的其他數(shù)據(jù)類型,所以在發(fā)送請求之前需要將 Python 結(jié)構(gòu)化的格式,轉(zhuǎn)換為成為字符串類型或者 json 字符串后,再發(fā)起 websocket 的接口請求
1.接收的數(shù)據(jù)體的處理: 如果接口定義為 json 的話,由于數(shù)據(jù)的傳輸都是字符串格式的,需要對接收 的數(shù)據(jù)體進行轉(zhuǎn)換操作
對于響應(yīng)內(nèi)容進行格式轉(zhuǎn)換處理:
1.websocket接口自動化測試,二次封裝demo展示
web_socket_util.py封裝websocket接口通用操作:
test_case.py websocket接口自動化測試用例:
掃描下方可領(lǐng)取更多學(xué)習(xí)資料(無償哦~)
