Тестирование сетевых прерываний в программном обеспечении

StackOverflow https://stackoverflow.com/questions/61524

Вопрос

У меня есть сетевая программа на C ++ в Windows, которую я хотел бы протестировать на предмет сетевых отключений в разное время.Какие у меня есть варианты?

В настоящее время я являюсь:

  1. Фактически отсоединяю сетевой провод от задней панели моего компьютера
  2. использование ipconfig /release
  3. Используя порты запрограммируйте полное закрытие сокета

Однако ни один из этих методов не идеален для меня, и я хотел бы более легко имитировать сетевые проблемы.

Я бы хотел, чтобы иногда соединения завершались с ошибкой, иногда чтение сокета завершалось с ошибкой, а иногда запись сокета завершалась с ошибкой.Было бы здорово, если бы существовала какая-нибудь утилита, которую я мог бы использовать для эмуляции подобных проблем.

Также было бы неплохо иметь возможность создавать некоторые автоматизированные модульные тесты, пока работает эта эмулируемая плохая сеть.

Это было полезно?

Решение

Возможно, вы захотите абстрагировать сетевой уровень, и тогда у вас могут быть модульные тесты, которые вводят интересные события сбоя в соответствующие моменты.

Другие советы

Самое близкое, что я могу придумать, - это сделать что-то подобное с ВЕДекстоп из Шунры..

Моделирование высокой задержки и низкой пропускной способности при тестировании приложений баз данных

Shunra VE Desktop Standard - это клиентское программное решение на базе Windows, которое имитирует подключение к глобальной сети, чтобы вы могли тестировать приложения в различных текущих и потенциальных сетевых условиях - прямо со своего рабочего стола.

Вы можете создать подкласс любого библиотечного класса, который вы используете для управления своими сокетами (предположительно, CAsyncSocket или CSocket, если вы используете MFC), переопределить методы, сбой которых вы хотите протестировать, и вставить соответствующий тестовый код в свои переопределения.

Есть несколько методов, которые вы можете использовать, это зависит от того, какой уровень вы хотите протестировать.На функциональном уровне вы можете использовать XUNIT testing framework для макетирования ответа.На программном уровне вы можете использовать локальный прокси-сервер для установления соединения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top