在非 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.