Ответ 1
Если вы используете apache, вы можете взглянуть на apache ab
можете ли вы предложить, как создать тестовую среду для имитации различных типов пропускной способности и трафика в веб-приложении?
Или, может быть, программа с открытым исходным кодом, которая делает это против локального хоста?
Я думаю, что это очень важный вопрос при программировании веб-приложений, но это не обычная тема, единственный способ, который я могу себе представить, создать такую среду, - это использовать somekind proxy в локальной сети, но прежде, чем начать изучать документации squid, я хотел бы услышать ваши предложения.
Если вы используете apache, вы можете взглянуть на apache ab
Существует два подхода к формированию сетевого трафика для имитации сетевой ссылки:
(2) - лучшее решение, если вы не хотите устанавливать программное обеспечение на клиент или сервер (и, возможно, влиять на производительность), но требуете большего количества аппаратных средств.
Некоторые другие функции, о которых вы, возможно, захотите подумать, - это то, как моделировать параметры формирования. Большинство из них задерживают и теряют пакет, а некоторые также уменьшают дрожание и пропускную способность. Некоторые решения могут выборочно фильтровать трафик (например, по номеру порта, TCP или UDP и т.д.).
Вот список некоторых из найденных систем:
Open Source или Freeware
DummyNet является открытым исходным кодом BSD Unix для выделенных устройств. Неясно, активно ли программное обеспечение поддерживается
NistNet - это система с открытым исходным кодом на базе Linux для выделенных устройств. Программное обеспечение не поддерживалось в течение нескольких лет.
Коммерческая
Apposite Technoligies продает специализированные аппаратные решения для имитации WAN-соединений с помощью веб-интерфейса GUI для настройки параметров и сбора данных о трафике
East Coast DataCom продает аппаратные специализированные симуляторы для имитации маршрутизаторов и модемов
Itrinegy предлагает как решения для отдельных устройств, так и решения для работы на клиентах или серверах.
Network FX предлагает несколько специализированных продуктов устройств для имитации сетевых нарушений между клиентом и сервером.
NetLimiter - это клиентская система, которая позволяет дросселировать отдельные приложения и включает в себя брандмауэр.
Shunra Software предлагает целый ряд продуктов - от моделирования и тестирования высокопроизводительных глобальных сетей предприятия до простого резидентного эмулятора.
Ближайший, о котором я могу думать, делает что-то подобное с VEDekstop из Shunra..
Shunra VE Desktop Standard - это клиентское программное обеспечение на базе Windows, которое имитирует широкополосную сетевую связь, чтобы вы могли тестировать приложения в различных текущих и потенциальных сетевых условиях - прямо с вашего рабочего стола.
Я написал php script некоторое время назад, которое использовало CURL для запуска последовательности запросов страниц к моему серверу, который представлял типичный сценарий использования. Я дал ему время, которое потребовалось серверу для ответа на каждый из запросов. Затем у меня появился еще один script, который породил кучу этих сценариев тестового сценария одновременно в течение длительного периода времени и сопоставлял результаты с файлом, который я мог бы посмотреть в электронной таблице, чтобы увидеть среднее время. Таким образом, я мог бы имитировать количество пользователей, попавших на сайт, который я хотел. Ограничения в том, что вам нужно запустить тест script на другом сервере на веб-сервере и что клиентская машина может стать слишком загруженной, чтобы дать значимые результаты за определенную точку. Я с тех пор оставил работу, иначе я бы ввел скрипты здесь.
Если вы используете Linux-сервер в качестве своего сервера, Linux-сервер как ваш клиент или можете разместить (возможно, виртуальную машину) маршрутизатор Linux между вашим клиентом и сервером, вы можете использовать NetEm.
NetEm - это дисциплина Linux TC (Traffic Control), которая может задерживать (то есть добавлять задержки) пакеты, выходящие из хоста. Хотя сложно настроить умные правила (например, добавить задержку к некоторому трафику, а не к другим), легко добавить простой "задерживать все, оставляя интерфейс по 50 мс", и некоторые рецепты предоставляются.
Придерживая виртуальную машину Linux между вашим клиентом и сервером, вы можете имитировать столько латентности, сколько захотите. И вы можете включать и выключать динамически. В Linux есть другие дисциплины TC, которые могут быть объединены с NetEm для ограничения полосы пропускания (но script, чтобы установить это, может быть несколько сложнее). NetEm также может случайным образом отбрасывать пакеты.
Я использую его, и он работает:)
Как говорили другие люди, Apache ab (поставляется с Apache, поэтому вы, вероятно, уже его уже знаете).
Другие хорошие варианты:
Мне лично нравятся ab и JMeter.
Инструмент стресса для веб-приложений (WAST) от Microsoft - это то, что вам нужно.
Я не использовал его в течение многих лет (нехватка необходимости не потому, что я нашел что-нибудь еще), но xat webspeed быть первым, что я хотел бы указать на
Мы используем Loadrunner для создания полосы пропускания и моделирования трафика в нашем приложении. Loadrunner может запускать агенты на разных машинах, и вы можете имитировать одну машину как работу на модеме модема v/s другой на DSL v/s другой в кабельном интернет-соединении. Мы также используем Loadrunner для имитации различных условий трафика от 10 пользователей до 500 пользователей. Мы также можем вставить время мысли в script и имитировать реального пользователя, выполняющего HTTP-запрос. Самое приятное то, что он поставляется с студией записи, где он будет подключаться к Internet Explorer, и вы можете записать весь сценарий /Usecase, который может быть таким же простым, как попадание одной страницы на полномасштабную страницу 50-60 script или более.
Я нашел эту небольшую программу java, которая отлично работает: sloppy
пока не является профессиональным решением, но он работает для простых тестов, я предполагаю, что он использует потоки java и буферы для замедления соединения.
Вы посмотрели на Цунга? Это отличная утилита для просмотра, если ваш сайт будет масштабироваться в случае атаки, я имею в виду огромную популярность. Мы используем его для нашего веб-интерфейса и наших внутренних систем.
Если вы заинтересованы в выполнении своих тестов из своего браузера, есть также действительно отличный плагин для Firefox.
Не забывайте о Wanulator (http://www.wanulator.de/). Название Wanulator происходит от "WAN" и "симулятора". Это в значительной степени описывает, что делает программное обеспечение: имитирует различные интернет-условия, такие как задержка или потеря пакетов. Кроме того, он имитирует скорости доступа к пользовательскому доступу, например, модем, ISDN или ADSL. Wanulator в настоящее время упакован как загрузочный компакт-диск Linux на основе SLAX. Это даст вам полный опыт работы с коробкой. Вы можете превратить любой компьютер в тестовую систему в мигание - просто загрузив компакт-диск Wanulator. Пакет уже включает полезный клиентский SW, такой как веб-браузер и сетевой сниффер (Wireshark). Тем не менее, если ПК имеет 2 сетевых интерфейса, система может работать как промежуточная система между вашим сервером и вашим клиентом - как коммутатор - без каких-либо проблем с конфигурацией.