总结:
如何创建模仿外部系统预期延迟的“集成”测试?
详细:
我有一个应用程序“Main”,它与多个外部系统(通过Web服务)进行通信,我将其称为“合作伙伴”。
我对合作伙伴的内部运作不感兴趣,但我需要对Main进行全面测试。
对于Main我目前有:
我还想要创建一些集成测试,以确保MAIN中的代码提供正确的性能。
什么是“正确的表现”?好吧,产品经理可以说“所有视图必须在2秒内返回数据”。我知道(平均而言)对合作伙伴的调用需要(比方说)1.5秒,因此我可以使用秒表编写我的积分测试,如果主代码在0.5秒(2 - 1.5)内完成则会通过。但是,在与同事的讨论中,有人建议伙伴的Stub应该包括1.5秒的预期延迟,因此我的测试应该是主要代码加上伙伴的存根应该在PM规定的2秒内完成。
的QU:
谢谢大家
格里夫
答案 0 :(得分:0)
“所有视图必须在2秒内返回数据”没有意义。在限制响应时间时,还应考虑负载。当每10秒钟有1个请求时,您的视图可能会在2秒内返回。但是当每秒有10k请求时,你的响应时间会“稍微”一些。更好的性能要求是“当负载低于每秒z次请求时,x%的响应将不会超过y秒”或类似的东西。
单元测试延迟也毫无意义。你应该进行全面的性能测试。选择一个现有工具,准备一些客户端节点(使用该工具控制),针对测试服务器运行记录/脚本客户端请求,并检查响应时间,CPU和内存使用情况。然后将一个或模式节点添加到您的系统并检查系统如何缩放