在非 JVM 環境中使用 Artifactory 中的存根進行生產者契約測試

在此流程中,我們假設:

  • API 生產者和 API 消費者是非 JVM 應用程式。

  • 契約定義採用 YAML 編寫。

  • 存根儲存是 Artifactory 或 Nexus。

  • 使用 Spring Cloud Contract Docker (SCC Docker) 和 Spring Cloud Contract Stub Runner Docker (SCC Stub Runner Docker) 映象。

有關如何將 Spring Cloud Contract 與 Docker 結合使用的更多資訊,請點選此處閱讀。

此處,您可以閱讀一篇關於如何在多語言世界中使用 Spring Cloud Contract 的部落格文章。

此處,您可以找到一個 NodeJS 應用程式的示例,該應用程式同時作為生產者和消費者使用 Spring Cloud Contract。

生產者流程

從宏觀層面看,生產者:

  1. 編寫契約定義(例如,使用 YAML)。

  2. 設定構建工具以:

    1. 在給定埠上啟動帶模擬服務的應用程式。

      如果無法模擬,您可以設定基礎設施並以有狀態的方式定義測試。

    2. 執行 Spring Cloud Contract Docker 映象,並將正在執行的應用程式的埠作為環境變數傳遞。SCC Docker 映象:

      • 從附加捲生成測試。

      • 針對正在執行的應用程式執行測試。

測試完成後,存根會被上傳到存根儲存站點(例如 Artifactory 或 Git)。

以下 UML 圖顯示了生產者流程:

flows-provider-non-jvm-producer

消費者流程

從宏觀層面看,消費者:

  1. 設定構建工具以:

    • 啟動 Spring Cloud Contract Stub Runner Docker 映象並啟動存根。

      環境變數配置:

    • 要獲取的存根。

    • 倉庫的位置。

      請注意:

    • 要使用本地儲存,您也可以將其作為卷附加。

    • 存根執行的埠需要暴露。

  2. 針對正在執行的存根執行應用程式測試。

以下 UML 圖顯示了消費者流程:

flows-provider-non-jvm-consumer
© . This site is unofficial and not affiliated with VMware.