集成测试-模拟预期延迟



总结

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

详细

我有一个应用程序"Main",它与多个外部系统(通过web服务)通信,我称之为"合作伙伴"。

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

对于Main,我目前有:

  • 对每个单独的可测试块进行单元测试[因此在每个"级别"(n层)测试每个类上的每个公共方法,并截断每个依赖项]
  • 从上到下进行测试的集成测试(因此测试Presentation层上的所有公共方法,并仅存根这些合作伙伴web服务)

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

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

QUs:

  1. 建议的行为是什么
  2. 如果按照建议,如何使用Rino Mocks来实现这一点

感谢大家

Griff

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

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

最新更新