2011-01-05 2 views
3

В настоящее время я работаю над написанием приложения для тестирования нагрузки, которое использует Load Test с помощью Visual Studio 2010. Тест нагрузки будет имитировать 20 пользователей на одном компьютере, и мне нужны некоторые данные для быть общим в памяти между всеми имитируемыми пользователями.Проверка загрузки Visual Studio Виртуальные пользователи Моделирование

Я был удивлён, я не мог найти в документации, отвечая на следующий вопрос:

Что отделяет контекст выполнения каждого виртуального пользователя от другого? Каждый виртуальный пользователь запускает тесты в своем собственном процессе? Может быть, в своем собственном домене приложений? Или просто по собственной теме? Мне нужно знать, потому что, если каждый пользователь запускает тесты в своем собственном процессе, то весь кеш в памяти не используется совместно и создается для каждого пользователя, а не для одного из них, что для меня плохо.

ответ

1

Вы можете использовать Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653 это расширенная версия диспетчера задач), чтобы получить ответ.

Запустите тест загрузки Visual Studio и откройте Process Explorer. Проверяются новые процессы. Затем найдите процесс Visual Studio и дважды щелкните. Затем выберите вкладку «Производительность .NET», и в этом процессе должен отобразиться список всех приложений AppDomains.

Кстати, сегодня мы выпустили расширение Fiddler для нагрузочного тестирования StresStimulus - http://stresstimulus.stimulustechnology.com. Где мы держим всех виртуальных пользователей в разных потоках в одном процессе.

1

Это самый близкий к тому ответ, который я нашел.

http://blogs.msdn.com/b/billbar/archive/2007/06/13/coded-web-tests-and-web-test-plug-ins-should-not-block-the-thread.aspx

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

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

+1

Это может быть действительно очевидно, но имейте в виду, что любое решение, основанное на статических классах/переменных для обмена данными между виртуальными пользователями, не подходит для настройки нескольких агентов. – agentnega

Смежные вопросы