Злой прокси для тестирования взаимодействия клиент / сервер - PullRequest
9 голосов
/ 31 марта 2012

Я пишу клиент, который общается с удаленным сервером по HTTP.Я хотел бы разместить злой прокси между клиентом и сервером, который (случайно?) Повлияет на трафик на проводе.

Некоторые вещи, которые я бы хотел совершить:

  • произвольные задержки ответа
  • произвольные ошибки HTTP
  • этот сценарий трудно представитьс TCP, но какого черта: усеченные ответы (то есть искаженные данные)
  • временная недоступность (хотя это кажется трудным, учитывая, что это должно быть сделано на более низком уровне сети).ошибки (например, каждый запрос возвращается с ошибкой сервиса)

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

Я подозреваю (надеюсь), что нечто подобное уже существует.Пожалуйста, направьте меня в правильном направлении!

Спасибо

Ответы [ 4 ]

5 голосов
/ 06 апреля 2012

HTTP Test Tool (htt) похоже на то, что вам нужно здесь. Он может работать как прокси-сервер и обратный прокси-сервер для конкретного тестирования тех случаев, когда фиктивная среда недостаточна для выполнения задачи.

Для действительно злого прокси, рассмотрите возможность использования Squid в сочетании с Metasploit Framework и некоторыми инструментами в BackTrack Linux, Хотя это немного выходит за рамки вашего проекта!

( Дополнительные инструменты для рассмотрения , плюс еще один )

3 голосов
/ 11 апреля 2012

Вы можете попробовать fiddler - все, что вы написали, может быть смоделировано с помощью этого инструмента.Он также отлично подходит для устранения проблем связи между вашим приложением и сервером.Когда я реализовывал XML-RPC, мне удалось сэкономить много работы.

Есть несколько замечательных расширений, которые могут вам помочь, и вы даже можете написать свои , если вам нужно что-то действительно особенное.1007 *

[EDIT] Так как это вопрос Mac, вы можете попробовать webscarab или charles (второй платный).Но вы все равно можете запустить прокси на любой машине - даже виртуальной.Так что если у вас есть запасная победная лицензия ...

3 голосов
/ 06 апреля 2012

Fiddler 1 - это прокси-просмотрщик трафика / прокси.

2 голосов
/ 12 апреля 2012

Поскольку вы работаете на Mac, в вашу систему встроено ipfw. Из терминала man ipfw для информации.

ipfw управляет правилами межсетевого экрана, в том числе набором правил, называемых «Dummynet», которые можно использовать для представления потери пакетов и задержки. Это не решает ВСЕ ваши проблемы, но позволяет вам влиять на ваш трафик на уровне сети без привлечения дополнительного программного обеспечения.

Я нашел статью о WaterRoof , которая выглядит как редактор правил GUI ipfw, поддерживающий Dummynet. Возможно, есть и другие.

Также ознакомьтесь с этой статьей AFP548 о формировании трафика с помощью Dummynet. Если вы чувствуете себя достаточно комфортно в командной строке, вам будет хорошо.

Обратите внимание, что Dummynet НЕ предоставляет инструменты для всего, что вы перечислили в своем вопросе; это только позволяет имитировать ряд сетевых проблем, таких как задержка и потеря пакетов. Для всего, что связано с изменением данных на уровне HTTP, я согласен с другими, что fiddler , вероятно, является инструментом для использования.

Также узнайте об инструменте Chrome / Chrome для проверки элемента. (Щелкните правой кнопкой мыши, затем выберите его в нижней части большинства контекстных меню.) Он предоставляет подробный обзор заголовков HTTP-клиентов и серверов, а также позволяет изменять скрытые переменные формы, записывать целые сеансы для последующего просмотра и т. Д. Очень удобно прочее.

...