测试用多种语言编写的 Grpc 服务

Testing Grpc Services Written in Multiple Languages

所以我有一个由多个服务(服务 1、服务 2、服务 3 和服务 4)组成的相当复杂的分布式系统。这些服务中的每一个都是一个 grpc 服务器,它们经常相互通信(例如,服务 1 将向服务 2 发出一个 rpc,这将 return 一个响应,或者服务 1 向服务 3 发出一个 rpc,它发出另一个 rpc在 return 对服务 1 做出响应之前先到服务 4)。棘手的部分是这些服务是用不同的编程语言编写的,有些是 Python ,有些是 Go。

如果每个服务器中的 rpc 端点是用不同的语言编写的,我该如何编写测试,以及我如何处理需要在 returning 之前联系另一个服务的 rpc 端点有回应吗?

您应该能够使用模拟独立测试这些服务中的每一个。

用go编写的服务可以使用gomocks,请参考这个link: https://www.google.com/url?sa=t&source=web&rct=j&url=https://github.com/golang/mock&ved=2ahUKEwi6nu2rquzpAhVNwjgGHcxiAekQFjAAegQIARAB&usg=AOvVaw3EoV6CtCn21kcU-Q4bneys

因此,如果您需要测试调用服务 2 的服务 1,您可以将服务 2 模拟为 return 预期结果。您应该也能为其他语言找到类似的模拟框架