我知道这个问题有点主观,但我不知道该怎么做。目前我正在使用 Go + Go-kit 编写一些微服务。我想以集成测试类型的方式测试这些微服务的端点,但我不确定如何去做。我唯一能想到的就是让 shell 脚本命中端点并检查响应。但这似乎是一种拼凑而不是真正明智的做法。我觉得应该有更好的方法来做到这一点。有人有什么建议吗?
最佳答案
端到端测试的另一种方法是 Consumer-Driven Contract (疾控中心)。
虽然进行一些端到端测试很有用,但它们也有一些缺点,例如:
消费者服务必须知道如何启动提供者服务。这听起来像是不必要的信息,当服务数量开始增加时可能难以维护;
启动服务可能会很慢。即使我们只谈了几秒钟,这也会增加构建时间的开销。如果一个消费者依赖于多项服务,那么这一切就会开始叠加;
提供商服务可能依赖于数据存储或其他服务才能按预期工作。这意味着现在不仅需要启动 Provider,还需要启动一些其他服务,也许是数据库。
CDC 的理念简述如下:
- 消费者定义它对特定服务请求的期望
- vendor 和消费者就此契约(Contract)达成一致
- 提供商不断验证契约(Contract)是否得到履行
关于测试微服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43814764/