Automated tests 微服务体系结构的测试自动化

Automated tests 微服务体系结构的测试自动化,automated-tests,microservices,Automated Tests,Microservices,我负责为一个使用微服务架构的项目实施QA过程和测试自动化 该项目有一个公共api,可以提供一些数据。因此,我将自动化API测试。测试将驻留在一个存储库中。这一部分对我来说很清楚,我以前在其他monolith项目中做过。我有一个API测试的回购协议。可能还有另一份硒测试回购协议 但是在这里,整个poduct由许多微服务组成,它们通过restfulapi和/或rabbit队列进行通信。我将如何为每个单独的服务自动化测试?每项服务的测试会在单独的回购协议中进行吗?注意:服务是用Java或PHP编写的。

我负责为一个使用微服务架构的项目实施QA过程和测试自动化

该项目有一个公共api,可以提供一些数据。因此,我将自动化API测试。测试将驻留在一个存储库中。这一部分对我来说很清楚,我以前在其他monolith项目中做过。我有一个API测试的回购协议。可能还有另一份硒测试回购协议

但是在这里,整个poduct由许多微服务组成,它们通过restfulapi和/或rabbit队列进行通信。我将如何为每个单独的服务自动化测试?每项服务的测试会在单独的回购协议中进行吗?注意:服务是用Java或PHP编写的。我将使用Python自动化测试。在我看来,我最终会有很多测试/存根/模拟的回购协议


社区可以提供哪些建议或良好的资源?:)

对于这种测试,我喜欢使用。(我知道你说的是Python,但我在这方面找不到类似的东西,所以我希望你(或其他正在搜索的人)会发现这个优秀的Ruby gem很有用。)


对于从外到内的测试,您可以使用-希望这至少能给您一些想法。

为每个微服务提供自己的代码库,并为跨服务端到端测试添加一个代码库

在微服务的存储库中,保存与该服务相关的所有内容,从测试代码到文档和管道:

root/
  app/
    source-code/
    unit-tests/ (also: integration-tests, component-tests)
  acceptance-tests/
  contract-tests/
将构建步骤使用的所有内容保存在一个文件夹中(此处:app),可能还有子文件夹,用于区分源代码与单元测试、集成测试和组件测试

将在交付管道的后续阶段运行的验收测试和合同测试等测试放在自己的文件夹中。这使他们在精神上保持分离。它还简化了为它们创建单独的构建/测试步骤,例如在使用Maven时包含自己的pom.xml

如果开发人员更改了一个特性,他将需要在完全相同的时间更改测试,以确保这两个特性相匹配。将代码和测试放在同一个存储库中,可以自然地保持两者的同步。

  • 使用微服务实现保持单元测试和契约测试
  • 组件测试在复合微服务的上下文中是有意义的, 所以让他们在一起
  • 将集成测试和E2E测试放在 按用例分组的单独回购

这可能会帮助您感谢@PriyanshuShekhar,我在到达该项目的第一天就看了这些幻灯片。它很好地解释了测试的类型,但忽略了如何组织或构造测试。无论如何,感谢您的输入:)