1. 如何使用WebSocket做介面測試
如果遇見了一個全新的協議,怎麼從零開始,完成介面測試?以 WebSocket 為例。
WebSocket 協議在2008年誕生,2011年成為國際標准。現在所有瀏覽器都已經支持了。WebSocket 的最大特點就是,伺服器可以主動向客戶端推送信息,客戶端也可以主動向伺服器發送信息,是真正的雙向平等對話。
WebSocket 的其他特點:
1. 建立在 TCP 協議之上,伺服器端的實現比較容易。
2. 與 HTTP 協議有著良好的兼容性。默認埠也是80和443,並且握手階段採用 HTTP 協議,因此握手時不容易屏蔽,能通過各種 HTTP 代理伺服器。
3. 數據格式比較輕量,性能開銷小,通信高效。
4. 可以發送文本,也可以發送二進制數據。
5. 沒有同源限制,客戶端可以與任意伺服器通信。
6. 協議標識符是ws(如果加密,則為wss),伺服器網址就是 URL。
· ws–>http(未加密) 無證書
· wss–>https(加密) 有證書
第一步:
很多時候第一反應向開發工程師求助,因為開發工程師基於新協議已經完成了介面開發,向開發工程師求助顯然是最好的辦法。找到一些學習脈絡,包含了協議的說明文檔、代碼開發文檔、實現代碼等內容,了解協議的原理。向開發求助是個方法。
那麼 WebSocket 用 Fiddler 怎麼搞定?,其實主要就是修改了 Fiddler 中 Rules 下的 Customize Rules,如果感興趣可以自己去搜一下。當面對陌生技術問題的時候,應該使用最熟悉的技術去嘗試解決問題。雖然 Fiddler 截獲 WebSocket 介面的辦法,所截獲的全部消息都在日誌裡面,根本無法操作。但是,可以藉助 Fiddler 分析 WebSocket 的介面,一開始給 Fiddler 這款工具的定位一樣,那就是通過它輔助分析我們的被測介面。處理HTTP、HTTPS,推薦用Fiddler。
但是在處理TCP,UDP 就用WireShark。Websocket是應用層協議,建立在 TCP 協議之上,伺服器端的實現比較容易。因為應用層是在傳輸層的基礎上包裝數據,所以我們還是從底層開始了解Websocket到底是個啥?是如何工作的?
可以通過---- wireshark(網路封包分析軟體)抓包工具抓到WebSocket介面
wireshark下載地址:https://www.wireshark.org/download.html
以下是python實現的websocket 介面連接。