Проверяем работу приложений при плохом соединении

Предположим нужно протестировать, как поведет наше клиент-серверное приложение на нестабильном канале. Ведь распределённые системы — следует разрабатывать с учётом потенциальных сбоев и лагов сети, а симуляция сбоев это как раз необходимое средство тестирования.
Очень легко сделать, чтобы сеть либо работала, либо не работала. Но нам нужно что-то среднее. Чтобы не грызть ethernet кабель, давайте портить подключение локально, на уровне операционки.

На помощь к нам придет утилита Clumsy, доступная под Windows, которая может имитировать сетевые соединения плохого качества
https://github.com/jagt/clumsy/releases

Loopback packets: пакеты отправляются с локального хоста на локальный хост. Как праавило, это трафик 127.0.0.1
Inbound packets: входящие пакеты на ваш компьютер
Outbound packets: исходящие пакеты с вашего компьютера
Filtering: позволяет прописать фильтр вручную или выбрать предустановленный для Вашего теста из пресетов. Например, вы можете выбрать IP, протокол или другие критерии.

На сайте разработчика есть анимация для версии 0.2, показывающая все опции наглядно (слева показан трафик)

Lag создает задержку в сети. Время указывается в миллисекундах.
Drop отбрасывает пакеты с указанной верноятностью.
Throttle блокирует трафик на определённое время и далее посылает его обратно.
Duplicate посылает повторно копии пакетов вслед за оригиналами с заданной вероятностю.
Out of order меняет порядок пакетов.
Tamper рандомно искажает содержимое пакетов.

 23   1 мес   github   soft