0

总结

如何创建模拟来自外部系统的预期延迟的“集成”测试?

详细

我有一个应用程序“Main”,它与多个外部系统(通过 Web 服务)通信,我称之为“Partners”。

我对合作伙伴的内部运作不感兴趣,但我需要全面测试 Main。

对于主要我目前有:

  • 对每个单独的可测试块进行单元测试[因此在每个“级别”(n 层)测试每个类的每个公共方法并存根每个依赖项]
  • 自上而下进行测试的集成测试(因此测试表示层上的所有公共方法并仅存根这些合作伙伴 Web 服务)

我还想要创建一些集成测试,以确保 MAIN 中的代码提供正确的性能。

什么是“正确的表现”?好吧,产品经理可以说“所有视图必须在 2 秒内返回数据”。我知道(平均而言)调用合作伙伴需要(比如说)1.5 秒,因此我可以使用秒表编写集成测试,如果主代码在 0.5 秒(2 - 1.5)内完成,则该秒表通过。但是,在与同事的讨论中,建议合作伙伴的存根应该包括 1.5 秒的预期延迟,因此我的测试应该是主代码加上合​​作伙伴的存根应该在 PM 指定的 2 秒内完成。

问:

  1. 建议的行为是什么?
  2. 如果按照建议,如何使用 Rino Mocks 进行存根?

感谢大家

格里夫

4

1 回答 1

0

“所有视图必须在 2 秒内返回数据”毫无意义。在限制响应时间时,还应该考虑负载。当每 10 秒有 1 个请求时,您的视图可能会在 2 秒内返回。但是当每秒有 10k 请求时,您的响应时间将“稍微”长一些。更好的性能要求是“当负载低于每秒 z 次请求时,x% 的响应将花费不超过 y 秒”或类似的东西。

单元测试延迟也没有任何意义。您应该运行全面的性能测试。选择现有工具之一,准备几个客户端节点(由该工具控制),针对您测试的服务器运行记录/脚本客户端的请求,并检查响应时间、cpu 和内存使用情况。然后将一个或模式节点添加到您的系统并检查系统如何扩展

于 2012-09-03T16:43:20.680 回答