7

在微服务世界中进行性能测试(主要谈论负载测试)时,您的应用程序依赖的外部依赖项 (API) 的方法是什么,但不由您的团队拥有/控制。在我的情况下,外部依赖项由同一公司内的团队拥有。那么您会指向相应的“真实”集成非产品端点,还是创建存根并模仿它们的响应时间以尽可能匹配生产?

  • 第一种方法示例:您的团队拥有的后端 api 并调用外部 api 来验证客户。您的团队无法控制客户 API,但在运行负载测试时您仍然指向他们的集成测试端点。
  • 第二种方法示例:您的团队拥有的后端 api 调用发送静态响应并模仿外部客户 api 的响应时间的存根。

我意识到这两种方法各有利弊,根据测试的目标,一种方法会优于另一种方法。但是你最喜欢的是什么?不一定是上述两者之间的选择。可以是完全不同的。

4

1 回答 1

4

识别被测系统(或应用程序)很重要。如果您只测量您自己的微服务的性能那么您可以考虑将存根作为一种选择。

但是,通常进行性能测试以评估整个系统的性能。目的通常是模拟实际使用中的延迟。稍微准确地对此建模的唯一方法是存根并使用“真实”集成端点。这种方法具有额外的优势,因为它可以帮助您识别潜在的系统性能瓶颈,例如微服务之间的链式同步调用(服务 A 调用 B,B 调用 C,C 调用 D 等)。这些测试也可以重复用于负载测试。

简而言之,您需要同时做这两件事以确保:

  1. 微服务在 SLA 内执行
  2. 各种微服务作为一个整体在 SLA 内执行。
于 2019-12-16T02:34:11.553 回答