我們有 5 個微服務(即將推出更多),它們彼此異步通信。其中 3 個微服務沒有任何 API。它們使用訊息佇列中的資料,進行一些處理,然后將資料寫入另一個佇列。其中 2 個微服務確實有 API,它們也使用佇列中的資料,但會將回應發送回呼叫者。
鑒于此,為了測驗服務互動、合約的正確性和端到端流程:
- 測驗從佇列讀取和寫入佇列的異步服務的最佳方法是什么?
- 消費者合同測驗是否適用于任何地方?
- 我覺得端到端的生產測驗是可能的,但是可以做一些更精細和更有效的事情嗎?
uj5u.com熱心網友回復:
首先,讓我們糾正一件事——你確實有 API。“無 API”服務讀取的訊息必須具有某些已定義的內容或格式。那是一個API。你應該測驗它,無論是正面的還是負面的。
在進行全系統測驗之前(在模擬生產環境的測驗或暫存環境中),您的測驗可能應該是分層的,就像在任何其他系統中一樣。
- 單元測驗來測驗每個類的行為。例如,在您的訊息處理類中,呼叫每個帶有提示特定操作的訊息并測驗它是否正常作業。這些通常可以非常快速地運行,因此在開發代碼時很容易經常運行它們。
- 集成測驗以確保您與下一級外部系統的互動有效。例如,您可以使用測驗容器來運行與您的服務互動的佇列系統的隔離實體。
這些測驗的具體形式取決于構建系統的語言和框架。我簡要查看了您參考的 Pact 工具,它采用了類似的方法。
uj5u.com熱心網友回復:
看起來使用 Pact 可以進行基于訊息的合同測驗。我想我有一條前進的道路。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/435490.html
