测试微服务中的服务链

时间:2020-06-24 06:48:36

标签: java spring-boot testing microservices

我是微服务的新手,并且在测试服务链方面存在一些问题。 我的应用程序是在Spring Boot中开发的,包含以下三个服务(每个服务是一个独立的Spring Boot应用程序):

enter image description here

用户从服务A请求资源,服务A处理该请求,然后将其发送到服务B,服务B处理该请求,然后将其发送到服务C。服务C最后将请求发送给第三方,并在流程返回响应给用户。

我的问题是测试此流程(服务链)。 我知道有此需求的Spring Cloud合同。但是据我了解,Spring Cloud合同仅测试两个服务(生产者和消费者,例如这里的服务A和B)。 我也可以在暂存环境中部署此服务并测试此链,但我不想这样做。

在此链中可以执行任何测试吗?

2 个答案:

答案 0 :(得分:1)

要进行此类测试,您应该使用通过以下方式进行的端到端测试策略:

  1. cypress作为端到端框架
  2. 使用docker(docker-compose)自动运行服务

答案 1 :(得分:0)

这里有很多问题要解决。

首先,这种端到端测试-取决于整个系统的复杂性-如果不是不可能的话,可能会过于复杂,并且长期而言相当昂贵。不仅在环境的初始设置和实现方面,而且在环境维护方面。这就是为什么我会说“分期”可能是您最好的选择。由于可以通过配置更改,版本控制,第三方依赖项管理等方式维护该环境。

话虽如此,如果您的系统非常复杂并且无法设置可靠的登台环境,那么我建议您依靠合同测试以及内部单元/集成/组件测试,并在适当的服务下使用“生产”测试版本控制以及“功能切换”的使用。您可以在https://blog.codecentric.de/en/2019/02/feature-toggles-benefits-drawbacks/和此处对版本Microservice Versioning

中找到有关功能切换的说明