用于网络故障的测试线束软件

时间:2010-01-23 18:04:42

标签: networking sockets tcp integration-testing

在集成测试期间,模拟各种低级网络故障非常重要,以确保所涉及的组件正确处理它们。一些套接字连接示例(来自Michael Nygard的Release It!书)包括

  • 连接已拒绝
  • 远程端回复SYN / ACK但从不发送任何数据
  • 远程端仅发送RESET数据包
  • 建立连接,但远程端从不确认接收数据包,导致无休止的重新传输

等等。

模拟涉及Web服务,数据库调用等的集成测试的此类故障将非常有用。

是否有任何工具可以创建此特定类型的故障条件(即套接字级故障)?例如,一种可能性是某种功能失调的服务器在不同的端口上出现不同类型的故障。

编辑:经过一些额外的研究,看起来可以使用防火墙来处理这种事情。例如,iptables有一些选项允许您匹配数据包(根据一些可配置的概率随机匹配,或者每隔一个数据包),然后丢弃它们。所以我想我们可能会设置我们的“讨厌的服务器”,并逐个端口地配置防火墙规则,以创建我们想要测试我们的应用程序的那种肮脏。有兴趣听听有关这种方法的想法。

3 个答案:

答案 0 :(得分:2)

bane是为此目的而构建的,描述如下:

  

Bane是一个测试工具,用于测试应用程序与其他服务器的交互。它基于Michael Nygard的“Release It!”中的材料。如“测试工具”一章所述。

答案 1 :(得分:1)

查看dummynet

答案 2 :(得分:1)

您可以使用iptables执行此操作,或者您可以在不使用ns-3实际发送数据包的情况下执行此操作,可能与您最喜欢的虚拟化解决方案相结合,或者您可以使用{{3}执行各种奇怪的操作}。