Симулятор пропускной способности и трафика для веб-приложений?

Можете ли вы предложить, как создать тестовую среду для моделирования различных типов пропускной способности и трафика в веб-приложении?

Или, может быть, программа с открытым исходным кодом, которая делает это против localhost?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
13
0
7 853
13

Ответы 13

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

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

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

если вы используете apache, вы можете взглянуть на apache ab

Некоторое время назад я написал php-скрипт, который использовал CURL для запуска последовательности запросов страниц к моему серверу, что представляло собой типичный сценарий использования. Я попросил его вывести время, которое требовалось серверу, чтобы ответить на каждый из запросов. Затем у меня был другой сценарий, который порождал несколько этих сценариев тестовых случаев одновременно в течение длительного периода и коррелировал результаты в файл, который я мог затем просмотреть в электронной таблице, чтобы увидеть среднее время. Таким образом я мог смоделировать количество пользователей, попавших на нужный мне сайт. Ограничения состоят в том, что вам нужно запустить тестовый сценарий на сервере, отличном от веб-сервера, и что клиентский компьютер может стать слишком загруженным, чтобы давать значимые результаты после определенного момента. С тех пор я уволился с работы, иначе я бы вставил сюда скрипты.

Если это проект с открытым исходным кодом, не могли бы вы поделиться им?

hello 28.02.2017 04:38

Мы используем Loadrunner для моделирования пропускной способности и трафика в нашем приложении. Loadrunner может запускать агенты на разных машинах, и вы можете моделировать одну машину как работающую на модеме коммутируемого доступа, другую на DSL и другую на кабельном Интернете. Мы также используем Loadrunner для моделирования различных условий трафика от 10 пользователей до 500 пользователей. Мы также можем вставить время обдумывания в сценарий и смоделировать реального пользователя, выполняющего HTTP-запрос. Самое приятное то, что он поставляется со студией звукозаписи, где он подключается к Internet Explorer, и вы можете записать весь сценарий / вариант использования, который может быть таким простым, как переход с одной страницы на полномасштабный сценарий из 50-60 страниц или более.

Я нашел эту небольшую программу на Java, которая отлично работает: небрежный

еще не профессиональное решение, но оно работает для простых тестов, я думаю, оно использует потоки и буферы Java для замедления соединения.

Вы смотрели на Цунга? Это отличная утилита для проверки, будет ли ваш сайт масштабироваться в случае атаки, я имею в виду огромную популярность. Мы используем его для нашего веб-интерфейса, а также для наших внутренних систем.

Если вы используете Linux-сервер в качестве сервера, Linux-сервер в качестве клиента или имеете возможность разместить (например, виртуальную машину) маршрутизатор Linux между вашим клиентом и сервером, вы можете использовать NetEm.

NetEm - это дисциплина Linux TC (Управление трафиком), которая может задерживать (т.е. добавлять задержку) пакеты, покидающие хост. Хотя сложно установить хитроумные правила (например, добавить задержку к одному трафику, а не к другому), легко добавить простое правило типа «задерживать все, покидающее интерфейс на 50 мс», и некоторые рецепты предоставляются.

Вставив виртуальную машину Linux между вашим клиентом и сервером, вы можете имитировать столько задержки, сколько захотите. И вы можете включать и выключать его динамически. В Linux есть и другие дисциплины TC, которые можно комбинировать с NetEm для ограничения пропускной способности (но сценарий для их настройки может быть несколько сложным). NetEm также может случайным образом отбрасывать пакеты.

Я использую его, и он работает очень хорошо :)

Если вас интересует выполнение тестов в браузере, есть также действительно отличный плагин для Firefox.

Существует два подхода к формированию сетевого трафика для имитации сетевого соединения:

  1. Запустите какое-то программное обеспечение на клиенте или сервере, которое находится где-нибудь в сетевом стеке и формирует трафик между приложением и сетевым интерфейсом.
  2. Запустите программу формирования трафика на выделенном компьютере с двумя сетевыми интерфейсами, через которые маршрутизируется ваш трафик.

(2) - лучшее решение, если вы не хотите устанавливать программное обеспечение на клиент или сервер (и, возможно, влиять на производительность), но требует больше возиться с оборудованием.

Некоторые другие особенности, о которых вы, возможно, захотите подумать, - это то, какие параметры формирования можно моделировать. Большинство из них делают задержку и потерю пакетов, некоторые также ограничивают джиттер и полосу пропускания. Некоторые решения могут выборочно фильтровать трафик (например, по номеру порта, TCP или UDP и т. д.).

Вот список некоторых из найденных мной систем:

Открытый исходный код или бесплатное ПО

DummyNet - это BSD с открытым исходным кодом на основе Unix для выделенных устройств. Неясно, активно ли поддерживается программное обеспечение.

NistNet - это система на базе Linux с открытым исходным кодом для выделенных устройств. Программное обеспечение не поддерживалось активно в течение нескольких лет.

Коммерческий

Apposite Technoligies продает специализированные аппаратные решения для моделирования каналов WAN с графическим веб-интерфейсом для настройки параметров и сбора измерений трафика.

DataCom Восточного побережья продают аппаратные специализированные тренажеры для моделирования роутеров и модемов

Itrinegy предлагает как решения для выделенных устройств, так и решения для работы на клиентах или серверах.

Сеть FX предлагает несколько продуктов для специализированных устройств для моделирования нарушений сети между клиентом и сервером.

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

Программное обеспечение Shunra предлагает широкий спектр продуктов, от моделирования и тестирования корпоративных сетей WAN высокого уровня до простого эмулятора на базе клиента.

Очень подробный и хорошо написанный ответ. Спасибо!

Matthew Blackford 02.09.2011 11:32

Как уже упоминали другие люди, Ab Apache (поставляется с Apache, так что он у вас, вероятно, уже есть) хорош.

Другие хорошие варианты:

  • HP's LoadRunner Apache
  • JMeter Джакарты
  • Цунг (если вы хотите включить свой эрланг)

Мне лично больше всего нравятся ab и JMeter.

Инструмент защиты веб-приложений (WAST) от Microsoft - это то, что вам нужно.

http://www.microsoft.com/downloads/details.aspx?familyid=e2c0585a-062a-439e-a67d-75a89aa36495&displaylang=en

Я не использовал его в течение многих лет (отсутствие необходимости, не потому, что я нашел что-то еще), но xat webspeed было бы первым, на что я бы указал

Не забываем про Wanulator (http://www.wanulator.de/). Название Wanulator происходит от «WAN» и «simulator». Это в значительной степени описывает то, что делает программное обеспечение: оно имитирует различные условия Интернета, такие как задержка или потеря пакетов. Кроме того, он имитирует скорость линии доступа пользователя, например, модем, ISDN или ADSL. Wanulator в настоящее время упакован в виде загрузочного компакт-диска Linux на основе SLAX. Это даст вам полный опыт работы. Вы можете в мгновение ока превратить любой компьютер в тестовую систему - просто загрузив компакт-диск Wanulator. Пакет уже включает полезное клиентское ПО, такое как веб-браузер и сетевой сниффер (Wireshark). Тем не менее, если ПК имеет 2 сетевых интерфейса, система может работать как промежуточная система между вашим сервером и вашим клиентом - как коммутатор - без каких-либо проблем с настройкой.

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