2010-01-23 22 views
3

在集成測試過程中,模擬各種低級網絡故障非常重要,以確保所涉及的組件妥善處理它們。一些插座連接示例(從發行它!本書由邁克爾·尼加德)包括網絡故障的測試線束軟件

  • 拒絕連接
  • 遠端回覆用SYN/ACK但從來沒有發送任何數據
  • 遠端只發送RESET包
  • 連接已建立,但遠端從不承認接收數據包,導致無休止的重傳

等等。

對於涉及Web服務,數據庫調用等的集成測試來模擬此類故障將很有用。

有沒有可用的工具可以創建這種特定排序的失敗條件(即套接字級失敗)?例如,一種可能性是某種功能失常的服務器,它在不同端口上顯示不同類型的故障。

編輯:後一些額外的研究,它看起來像它可以處理使用防火牆這種事情。例如,iptables有一些選項允許你匹配數據包(或者按照某種可配置的概率隨機地進行匹配,或者以每個第n個數據包爲基礎),然後丟棄它們。所以我在想,我們可能會設置我們的「討厭的服務器」,並在逐個端口的基礎上配置防火牆規則,以創建我們想要測試我們的應用程序的那種骯髒。有興趣聽到關於這種方法的想法。

回答

1

你可以使用iptables來做到這一點,或者你可以做到這一點,而不需要用ns-3實際發送數據包,也可以結合你最喜歡的虛擬化解決方案,或者你可以用scapy做各種奇怪的事情。

2

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

貝恩是用於與其他服務器來測試你的應用程序交互的測試工具。它基於Michael Nygard的「發佈它!」的材料。如「測試線束」一章所述。