如果遇見了乙個全新的協議,怎麼從零開始,完成介面測試?以 websocket 為例。
websocket 協議在2023年誕生,2023年成為國際標準。現在所有瀏覽器都已經支援了。websocket 的最大特點就是,伺服器可以主動向客戶端推送資訊,客戶端也可以主動向伺服器傳送資訊,是真正的雙向平等對話。
websocket 的其他特點:
• 建立在 tcp 協議之上,伺服器端的實現比較容易。
• 與 http 協議有著良好的相容性。預設埠也是80和443,並且握手階段採用 http 協議,因此握手時不容易遮蔽,能通過各種 http **伺服器。
• 資料格式比較輕量,效能開銷小,通訊高效。
• 可以傳送文字,也可以傳送二進位制資料。
• 沒有同源限制,客戶端可以與任意伺服器通訊。
• 協議識別符號是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到底是個啥?是如何工作的?
以下是python實現的websocket 介面連線。
#匯入websocket的create_connection類
from websocket import
create_connection
#建立和websocket介面的鏈結
ws = create_connection("
ws:")
#列印日誌
print("
hello, world")
#客戶端傳送hello,world
ws.send("
hello, world")
print("
receiving...")
#將websocket的返回值儲存result變數
result =ws.recv()
#列印返回的result
print("
received '%s'
" %result)
#關閉websocket鏈結
ws.close()
# 建立和websocket介面的鏈結ws = create_connection("ws:")
執行上面語句之後,客戶端就會與伺服器進行連線。
例項物件的send()方法用於向伺服器傳送資料。ws.send("hello, world")
介面測試怎麼做
通用介面api規範 保持冪等。也即多次呼叫,應該產生一致的結果,例如轉賬1元,因為呼叫失敗或者超時重試的時候,最終結果還應該是轉賬1元,而非呼叫兩次變成轉賬2元。介面的實現應該盡量避免阻塞,可以使用非同步方式提公升效能。介面應該包括能夠區分不同情況的異常,而非丟擲寬泛的exception,不能吞掉異...
怎麼做web介面測試
這就需要開發提供的介面文件了,介面文件和功能測試的需求說明書的功能是一樣的。包括 介面說明 呼叫的url,請求方式 get or post 請求引數 引數型別 請求引數說明,返回結果說明。有了介面文件後,我們就可以設計用例了,一般介面測試的用例分為以下幾種 1 通過性驗證,說白了就是傳遞正確的引數,...
介面測試怎麼做的?
1 拿到介面文件熟悉 服務端開發人員把介面文件寫出來,我們就可以拿過來熟悉 1 每個介面對應要實現的功能是什麼。2 伺服器的位址 埠 介面位址 3 請求方式,請求引數有哪些 4 響應資料 1 響應的字段個數是否足夠 可以看需求文件中對應的功能需要顯示的個數,只能多不能少 2 正確和錯誤的響應碼 er...