Как проверить 1000 клиентов Windows 7 клиентов - PullRequest
6 голосов
/ 28 февраля 2011

У нас есть клиенты .net, работающие на Windows 7, встроенные в SQL Server Express.Они запускаются отключенными, и очень часто они подключаются к центральному серверу, выводят их информацию и выводят новую информацию.Мы хотим провести стресс-тестирование всей распределенной системы и пытаемся найти экономически эффективный способ сделать это.У одного из наших разработчиков была идея использовать облако Amazon и ускорить работу 1000 клиентов, но они поддерживают только Windows Server O / S и, похоже, могут стоить денег, если вам придется повторно запускать тест несколько раз, что, вероятно,.

Мы думали о том, чтобы смоделировать 1000 клиентов на одном компьютере, что могло бы сделать вид, что у них 1000 клиентов, и выполнять все вызовы асинхронно, но если вы работаете на одном компьютере, некоторые из ваших потолков будут ОЗУ ипроцессор одной машины по сравнению с более крупной системой, поэтому я не уверен, насколько «реальной» картины она нам даст.

Все вызовы происходят с WCF между клиентом и сервером.

У кого-нибудь есть опыт в этой области, и если да, то как вы справились с этим?

спасибо,

Супер Тимми

Ответы [ 3 ]

1 голос
/ 28 февраля 2011

Вы смотрели на SOASTA?Они обеспечивают тестирование загрузки SOA на основе облака.

0 голосов
/ 07 марта 2011

Если вы используете WCF с текстовым протоколом по HTTP (что кажется вероятным), то у вас есть ряд доступных инструментов.Большинство инструментов веб-нагрузочного тестирования могут записывать HTTP-трафик, выступая в качестве прокси-сервера для браузера, что, как правило, также позволяет выполнять запись с расширенных клиентов.Возможно, вам придется сделать некоторые дополнительные настройки ваших тестовых случаев, так как инструменты оптимизированы для имитации браузеров.Мы сделали это для нескольких наших клиентов, и это сработало довольно хорошо.

Ряд инструментов нагрузочного тестирования поддерживают генерирование нагрузки из облака (включая наш - Web Performance Load Tester - и другие, такие как BrowserMobLoadStorm и т. Д.), Поэтому начните оценку с них - это сделает моделирование 1000 виртуальных пользователей очень простым и доступным.

0 голосов
/ 01 марта 2011

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

Разработчики обычно имеют довольно грубые машины, и обычно их несколько.Таким образом, вы не уничтожите тестовую машину и сможете следить за происходящим.

В идеале вы сможете использовать Visual Studio 2010 Load Test agent на машинах разработчиков.Этот инструмент даст вам возможность отслеживать статистику со всех компьютеров в тесте и дает действительно хорошее представление о том, как реагирует ваш сервер.

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

Это зависит от точного характера вашей среды разработки и условий лицензирования Visual Studio.

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

Для целей нагрузочного тестирования вам не нужноиметь «реальных» клиентов вашего веб-сервиса.Поскольку веб-сервис представляет собой интерфейс, вы можете имитировать активность обычного клиента и запускать его без обычных пауз «обдумывания», что дает вам возможность протестировать нагрузку на 1000 клиентов без необходимости запуска экземпляра каждого клиента.

Например, если каждый клиент обращается к веб-службе один раз в минуту, в общей сложности 1000/60 = 16,7 вызовов в секунду.Если каждый вызов завершится за 3 секунды, 50 виртуальных пользователей смогут создать одинаковую нагрузку (50/3 = 16,7).Исходя из опыта, две машины, на которых выполняется нагрузочное тестирование Visual Studio, смогут генерировать нагрузку, а не перегружать их ЦП.

...