Как выполнить стресс-тест на сайте sharepoint с помощью потоков

Я хочу проанализировать производительность (отсюда и ее слабые стороны) сайта sharepoint, выполняющего стресс-тестирование. Для этого необходимо вызвать некоторые методы, предоставляемые через веб-сервис, которые выполняют следующие действия на сайте sharepoint:

-create a new group 
-add a content to the group 
-add an attachment to the content 
-delete the content 
-delete the previously created group

Требуется симуляция ситуации, когда 4500 пользователей пытаются выполнять эти операции одновременно (в то же время или более реалистично в течение короткого промежутка времени, например, в течение 5 секунд).

Мы хотим зарегистрировать время выполнения каждой операции (веб-метод, например, "создать новую группу"). Я думал, что смогу смоделировать эти операции через консольные приложения, используя потоки и секундомеры. Есть ли кто-нибудь, кто сталкивался с подобной проблемой и может дать мне какие-либо существующие решения или подсказки, чтобы сделать это "правильным способом"? Например, как я могу получить, чтобы все потоки запускались одновременно? Заранее спасибо.

2 ответа

Я пользуюсь нагрузочным тестированием Visual Studio уже 2 года и считаю его очень мощным и простым в использовании. Вы можете запускать интеграционные тесты, навигацию по веб-сайту, моделировать загрузку базы данных... и вообще все. Поскольку это приложение MS, оно также полностью совместимо со всеми продуктами MS, такими как Sharepoint: проще вызвать службу WCF из модульного теста, чем из другой технологии (как протестировать nettcpbinding?). Вы также можете использовать Visual Studio Profiler для инструментария вашего кода (и посмотреть, какая строка кода является дорогой или события взаимодействия ADO.net). Вы также можете легко расширить нагрузочное тестирование многими точками расширения.

Одна важная вещь состоит в том, что VS laod тестирование является "навязчивым". Он будет учитывать только время отклика, длительность запросов, ... но также все счетчики производительности, запросы к базе данных... Все эти показатели сохраняются в специальной базе данных, такой как SQLExpress, для отчетов. Есть надстройка для Excel.

Просто обратите внимание на одно важное замечание (доступно для всех решений по нагрузочному тестированию!):

Вы можете запускать нагрузочные тесты с компьютера разработчика или даже с одного выделенного компьютера, но обычно вы не можете сгенерировать достаточно трафика, чтобы реально увидеть реакцию приложения (ваша машина не может моделировать 500 одновременно работающих пользователей из-за ограниченности ЦП / памяти / сети)., Для того, чтобы моделировать множество пользователей, вы настроите так называемый Load Test Rig. испытательный стенд

Испытательная установка состоит из машины Test Controller и одной или нескольких машин Test Agent, как показано на рисунке 1. Контроллер управляет машинами агентов и координирует их, а агенты создают нагрузку на приложение. Контроллер теста также отвечает за сбор данных монитора производительности с тестируемых серверов и, при необходимости, с машин тестового стенда.

Вот несколько ссылок:

Не говоря уже о том, что Visual Studio Load Testing - не очень хороший инструмент. Существуют такие инструменты, как Tsung, Eventlet (и многие другие), которые могут поддерживать более тысячи одновременно работающих пользователей.

Удачи.