Как загрузить тестирование интерфейса SOAP (являются ли вызовы функций SOAP атомарными)? - PullRequest
1 голос
/ 16 сентября 2010

Сервер предлагает интерфейс вызова функции SOAP.
Сотни, возможно, несколько тысяч компьютеров вызывают эту функцию.
Мне нужно загрузить это тестирование на одном ПК.

В данный момент у меня просто есть цикл for. Это достаточно хорошо? Если нет, то как мне сделать тест более реалистичным?

Я думал о потоке, но если вызов функции SOAP является атомарным, тогда это ничего не покупает. Даже если это так, на моем тестовом ПК все еще может быть только один активный поток (на процессор).

Надеюсь, это понятно, пожалуйста, запросите дополнительную информацию, если нет.

Какой лучший способ проверить это, симулировать множество ПК на одном?


Обновление, я использую VB Express 2008. Я не могу поверить, что .NET так устроен, что блокирует ЦП на время удаленного вызова процедуры SOAP ... или нет?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2010

Используя цикл for, вы, вероятно, отправляете только один одновременный запрос. Поток, выполняющий цикл, вероятно, будет заблокирован в ожидании ответа. Обратите внимание, что это блокирует поток, но не весь процессор, который может совместно использоваться многими потоками. Следовательно, используя несколько потоков, вы можете выдавать несколько запросов одновременно.

Теперь обработчик SOAP на сервере может быть однопоточным - это означает, что он может обрабатывать только 1 запрос одновременно. Это гораздо менее вероятно - поскольку серверные инфраструктуры специально разработаны для , а не , работают таким образом. Надеюсь, вы не обнаружите, что это так.

Определили ли вы, сколько одновременных запросов вам нужно обработать? В зависимости от сценария, даже коллекция из 10 000 активных клиентов может генерировать только 10 одновременных запросов. Это будет зависеть от частоты звонков, а также от продолжительности ответа. Частота запросов (запросов / сек) будет определять, сможете ли вы надежно / точно смоделировать требуемую нагрузку с одного компьютера.

0 голосов
/ 16 сентября 2010

Атомность вызова SOAP мало влияет на полезность многопоточности.

Вы должны создать столько потоков, сколько позволит ваша система, прежде чем это замедлит работу вашего тестового компьютера. Даже больше потоков, чем процессоров, будет по-прежнему генерировать большую нагрузку, потому что вызов SOAP, скорее всего, не будет возвращен немедленно. Если у вас 4 ЦП, первые 4 потока могут одновременно выполнять вызов SOAP, а затем следующие 4 потока могут выполнить еще 4 вызова до завершения исходных 4. Несмотря на то, что это не точно имитирует несколько вызывающих машин, вы не сможете точно смоделировать этот сценарий без набора тестовых машин и набора сценариев для одновременного вызова службы.

РЕДАКТИРОВАТЬ: Исправлена ​​опечатка выше, слово должно было быть "скорее всего", а не "как"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...