Тестирование программного обеспечения для сетевых сбоев - PullRequest
3 голосов
/ 23 января 2010

Во время интеграционного тестирования важно смоделировать различные виды низкоуровневых сетевых сбоев, чтобы гарантировать, что задействованные компоненты правильно с ними справляются. Некоторые примеры соединений с сокетами (из книги «Освободи это!» Майкла Найгарда) включают

  • в соединении отказано
  • удаленный конец отвечает SYN / ACK, но никогда не отправляет данные
  • удаленный конец отправляет только пакеты RESET
  • соединение установлено, но удаленный конец никогда не подтверждает получение пакетов, вызывая бесконечные повторные передачи

и пр.

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

Существуют ли какие-либо инструменты, способные создавать условия сбоя такого специфического вида (то есть сбои на уровне сокета)? Например, одной из возможностей может быть какой-то нефункциональный сервер, который демонстрирует различные виды сбоев на разных портах.

РЕДАКТИРОВАТЬ: После некоторых дополнительных исследований, похоже, что с этим можно справиться с помощью брандмауэра. Например, в iptables есть несколько опций, которые позволяют вам сопоставлять пакеты (либо случайным образом в соответствии с некоторой настраиваемой вероятностью, либо на основе каждого n-го пакета), а затем отбрасывать их. Поэтому я думаю, что мы могли бы настроить наш «грязный сервер» с правилами брандмауэра, настроенными для каждого порта, чтобы создать тот тип мерзости, с которым мы хотим протестировать наши приложения. Было бы интересно услышать мысли об этом подходе.

Ответы [ 3 ]

2 голосов
/ 26 сентября 2012

Бэйн построен для этой цели, описывается как:

Bane - тестовая система, используемая для проверки взаимодействия вашего приложения с другими серверами. Он основан на материале Майкла Найгарда "Выпусти это!" книга, как описано в главе «Испытательный комплект».

1 голос
/ 24 января 2010

Вы можете сделать это с помощью iptables, или вы можете сделать это, фактически не отправляя пакеты куда-либо с ns-3 , возможно, в сочетании с вашим любимым решением для виртуализации, или вы можете делать всякие странные вещи с scapy .

1 голос
/ 23 января 2010

Взгляните на dummynet .

...