测试微服务?

标签 testing go integration-testing microservices

我知道这个问题有点主观,但我不知道该怎么做。目前我正在使用 Go + Go-kit 编写一些微服务。我想以集成测试类型的方式测试这些微服务的端点,但我不确定如何去做。我唯一能想到的就是让 shell 脚本命中端点并检查响应。但这似乎是一种拼凑而不是真正明智的做法。我觉得应该有更好的方法来做到这一点。有人有什么建议吗?

最佳答案

端到端测试的另一种方法是 Consumer-Driven Contract (疾控中心)。

虽然进行一些端到端测试很有用,但它们也有一些缺点,例如:

  • 消费者服务必须知道如何启动提供者服务。这听起来像是不必要的信息,当服务数量开始增加时可能难以维护;

  • 启动服务可能会很慢。即使我们只谈了几秒钟,这也会增加构建时间的开销。如果一个消费者依赖于多项服务,那么这一切就会开始叠加;

  • 提供商服务可能依赖于数据存储或其他服务才能按预期工作。这意味着现在不仅需要启动 Provider,还需要启动一些其他服务,也许是数据库。

CDC 的理念简述如下:

  1. 消费者定义它对特定服务请求的期望
  2. vendor 和消费者就此契约(Contract)达成一致
  3. 提供商不断验证契约(Contract)是否得到履行

此信息取自here .阅读更多相关信息 article ,即使它特定于 Java,它也很有用。

关于测试微服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43814764/

相关文章:

asp.net-mvc - 集成测试设计

javascript - 尝试使用 Protractor 选择消息时索引带外

java - 使用 ANTLR 4 测试预期的错误消息

url - Golang 如何将 punycode 转换为 unicode?

go - Golang反射: Inspect a struct type definition to extract its properties without initialization

java - Android Espresso 测试在物理设备上失败(PerformException)

android - Proguard不缩水测试APK

apache - debian上的golang/apache/cgi-apache重定向停止工作

spring-boot - 在Spring Boot中使用不同的弹性指数进行测试

c# - 如何在集成测试之间刷新 IAppCache