2008-09-14 11 views
11

Ich habe ein Netzwerk C++ - Programm in Windows, das ich für Netzwerkunterbrechungen zu verschiedenen Zeiten testen möchte. Was sind meine Möglichkeiten?Testen von Netzwerkinterrupts in der Software

Derzeit ich bin:

  1. Eigentlich von der Rückseite meines Computers
  2. mit dem Netzwerkkabel trennen ipconfig/release
  3. Mit dem cports Programm vollständig die Buchse schließen out

Keine dieser Methoden ist jedoch ideal für mich, und ich möchte Netzwerkprobleme einfacher emulieren.

Ich möchte für manchmal verbindet zu fehlschlagen, manchmal Socket liest fehlschlagen, und manchmal Sockets schreibt fehlschlagen. Es wäre großartig, wenn es ein Dienstprogramm gäbe, das ich verwenden könnte, um diese Art von Problemen zu emulieren.

Es wäre auch schön, in der Lage zu sein, einige automatisierte Komponententests zu erstellen, während dieses emulierte schlechte Netzwerk aktiv ist.

Antwort

11

Sie können die Netzwerkebene abstrahieren, und dann können Sie über Komponententests interessante Fehlerereignisse an geeigneten Punkten einfügen.

+0

Dies ist der Ansatz, den ich nehme und es funktioniert sehr gut. Eine vernünftige Verwendung von Schnittstellen bedeutet, dass ich verschiedene Teile des zu testenden Systems ausspionieren kann. Für die Tests, die auf diese Weise nicht möglich sind, muss der zu testende Code an eine Testbuchse im Testkabelbaum angeschlossen werden, die ich dann im Test steuere –

0

Sie können jede Bibliotheksklasse ableiten, die Sie zum Verwalten Ihrer Sockets verwenden (vermutlich CAsyncSocket oder CSocket, wenn Sie MFC verwenden), die Methoden außer Kraft setzen, deren Fehler Sie testen möchten, und entsprechenden Testcode in Ihre Außerkraftsetzungen einfügen.

0

Es gibt einige Methoden, die Sie verwenden können, es hängt davon ab, welche Ebene Sie testen möchten. Für die Funktionsebene können Sie das XUNIT-Testframework verwenden, um eine Reaktion nachzuahmen. Für die Softwareebene können Sie einen lokalen Proxy-Server für die Verbindung verwenden.