2010-01-23 19 views
3

在集成测试过程中,模拟各种低级网络故障非常重要,以确保所涉及的组件妥善处理它们。一些插座连接示例(从发行它!本书由迈克尔·尼加德)包括网络故障的测试线束软件

  • 拒绝连接
  • 远端回复用SYN/ACK但从来没有发送任何数据
  • 远端只发送RESET包
  • 连接已建立,但远端从不承认接收数据包,导致无休止的重传

等等。

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

有没有可用的工具可以创建这种特定排序的失败条件(即套接字级失败)?例如,一种可能性是某种功能失常的服务器,它在不同端口上显示不同类型的故障。

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

回答

1

你可以使用iptables来做到这一点,或者你可以做到这一点,而不需要用ns-3实际发送数据包,也可以结合你最喜欢的虚拟化解决方案,或者你可以用scapy做各种奇怪的事情。

2

bane就是为此而建,描述为:

贝恩是用于与其他服务器来测试你的应用程序交互的测试工具。它基于Michael Nygard的“发布它!”的材料。如“测试线束”一章所述。