Networking 测试网络故障的线束软件

Networking 测试网络故障的线束软件,networking,sockets,tcp,integration-testing,Networking,Sockets,Tcp,Integration Testing,在集成测试期间,模拟各种低级网络故障以确保相关组件正确处理这些故障是很重要的。一些套接字连接示例(摘自Michael Nygard的发行版It!书)包括 拒绝连接 远程端使用SYN/ACK进行回复,但从不发送任何数据 远程端仅发送重置数据包 连接已建立,但远程端从未确认接收到数据包,导致无休止的重新传输 等等 对于涉及web服务、数据库调用等的集成测试来说,模拟此类故障是非常有用的 是否有任何可用的工具能够创建这种特定类型的故障条件(即插座级故障)?例如,一种可能是某种功能失调的服务器在不同

在集成测试期间,模拟各种低级网络故障以确保相关组件正确处理这些故障是很重要的。一些套接字连接示例(摘自Michael Nygard的发行版It!书)包括

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

对于涉及web服务、数据库调用等的集成测试来说,模拟此类故障是非常有用的

是否有任何可用的工具能够创建这种特定类型的故障条件(即插座级故障)?例如,一种可能是某种功能失调的服务器在不同端口上出现不同类型的故障


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

请看一下。

您可以使用iptables来实现,也可以不用将数据包发送到任何地方,也可以与您最喜欢的虚拟化解决方案结合使用,或者您可以使用它来完成各种奇怪的事情。

就是为此目的而构建的,描述为:

Bane是一种测试工具,用于测试应用程序与其他服务器的交互。它基于迈克尔·尼加德的《释放它!》一书中的材料,如“测试线束”一章所述